anchor.diff:      end.
   
   query_nss_dns(
  -  #q{dns = Qdns}=Q_0,
  +  #q{dns = DNSQuery_0}=Q_0,
     [NsSpec|NSs], Timer, Retry, I, S_0, Reason, RetryNSs) ->
       %%
       {IP,Port} = NS = servfail_retry_wait(NsSpec),
       #q{options = Options,
  -       dns = {Id,Buffer}}=Q =
  +       dns = DNSQuery}=Q =
   	if
  -	    is_function(Qdns, 0) -> Q_0#q{dns=Qdns()};
  -	    true -> Q_0
  +	    is_function(DNSQuery_0, 0) ->
  +                Q_0#q{dns=DNSQuery_0()};
  +	    true ->
  +                Q_0
   	end,
       {S,Result} =
   	query_ns(
  -	  S_0, Id, Buffer, IP, Port, Timer, Retry, I, Options, ?PACKETSZ),
  +	  S_0, DNSQuery, IP, Port, Timer, Retry, I, Options, ?PACKETSZ),
       query_nss_result(
         Q, NSs, Timer, Retry, I, S, Reason, RetryNSs, NS, Result).
   
  
positive.code:   #q{options =
           #options{
              udp_payload_size = PSz}=Options,
       edns = {Id,Buffer}}=Q,
    [NsSpec|NSs], Timer, Retry, I, S_0, Reason, RetryNSs) ->
      %%
      {IP,Port} = NS = servfail_retry_wait(NsSpec),
      {S,Result} =
  	query_ns(
            S_0, Id, Buffer, IP, Port, Timer, Retry, I, Options, PSz),
      case Result of
  	{error,{E,_}}
            when E =:= qfmterror;
  
negative.code: 	    end
      end.
  
  query_udp(_S, _Msg, _Buffer, _IP, _Port, 0, _Verbose) ->
      timeout;
  query_udp(S, Msg, Buffer, IP, Port, Timeout, Verbose) ->
      ?verbose(Verbose, "Try UDP server : ~p:~p (timeout=~w)\n",
  	     [IP,Port,Timeout]),
      case
  