                         ttl = Math.floor(Math.random() * 3600) + 30
                         res.answer.push (addrs.map gIP2type(q.name, ttl, QTYPE_NAME[q.type]))...
                         @log.debug {fn:sig+':success', answer:res.answer, q:q.name}
-                        cb null, res
+                        cb res
             else
                 # refuse all such queries
-                cb NAME_RCODE.REFUSED, res
+                cb res, NAME_RCODE.REFUSED
 
         sendErr: (res, code=NAME_RCODE.SERVFAIL) ->
             try

                req2.on 'end', =>
                    if success
                        @log.debug gLineInfo('success!'), {q:q, res: _.omit(res, '_socket')}
                        cb null, res
                    else
                        # TODO: this is noisy.
                        #       also make log output look good in journalctl
                        # you can log IP with: res._socket.remote.address
                        @log.warn gLineInfo('oldDNS lookup failed'), {q:q, err:req2.DNSErr}
                        cb NAME_RCODE.SERVFAIL, res
                # @log.debug {fn:"beforesend", req:req2}
                req2.send()
            else if @method is gConsts.oldDNS.NODE_DNS
                dns.resolve q.name, QTYPE_NAME[q.type], (err, addrs) =>
                    if err
                        @log.debug {fn:sig+':fail', q:q, err:err?.message}
                        cb NAME_RCODE.SERVFAIL, res
                    else
                        # USING THIS METHOD IS DISCOURAGED BECAUSE IT DOESN'T
                        # PROVIDE US WITH CORRECT TTL VALUES!!

        resolve: (path, cb) ->
            req = @packet()
            req.question.push dns2.Question {name: path}
            @oldDNSLookup req, (packet, code) ->
                code = {code:code, name:RCODE_NAME[code]} if code
                cb code, packet

