                 req2.on 'end', =>
                     if success
                         @log.debug gLineInfo('success!'), {q:q, res: _.omit(res, '_socket')}
-                        cb null, res
+                        cb 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
+                        cb res, NAME_RCODE.SERVFAIL
                 # @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
+                        cb res, NAME_RCODE.SERVFAIL
                     else
                         # USING THIS METHOD IS DISCOURAGED BECAUSE IT DOESN'T
                         # PROVIDE US WITH CORRECT TTL VALUES!!

                res.send()
            else
                @log.debug gLineInfo("deferring request"), {q:q}
                @oldDNSLookup req, (code, packet) ->
                    _.assign res, _.pick packet, ['edns_version', 'edns_options',
                        'edns', 'answer', 'authority', 'additional']
                    @sendErr(res, code) if code

        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

