anchor.diff:  answer_questions([], Response) ->
     Response;
   answer_questions([Q|Rest], Response) ->
  -  lager:info("Question: ~p~n", [Q]),
     [Qname, Qtype] = [Q#dns_query.name, Q#dns_query.type],
     answer_questions(Rest, build_response(lists:flatten(resolve_cnames(Qtype, answer_question(Qname, Qtype))), Response)).
   
  
positive.code: %% Handle the decoded message
  handle(DecodedMessage) ->
    Questions = DecodedMessage#dns_message.questions,
    Message = case erldns_packet_cache:get(Questions) of
      {ok, Answers} -> 
        lager:debug("Packet cache hit"), %% TODO: measure
  
negative.code: resolve_cname(OriginalQtype, Record) ->
    case Record#dns_rr.type of
      ?DNS_TYPE_CNAME_NUMBER ->
        lager:debug("~p:resolve_cname(~p)~n", [?MODULE, Record]),
        Qname = Record#dns_rr.data#dns_rrdata_cname.dname,
        answer_question(Qname, OriginalQtype) ++ [Record];
      _ ->
        Record
    end.
  