bindingName; req.callback = callback; req.hostname = name; req.oncomplete = onresolve; req.ttl = !!(options?.ttl); const err = this._handle[bindingName](req, name); if (err) throw new DNSException(err, bindingName, name); if (hasObserver('dns')) { startPerf(req, kPerfHooksDnsLookupResolveContext, { type: 'dns', name: bindingName, detail: { host: name, ttl: req.ttl, }, }); } return req; } ObjectDefineProperty(query, 'name', { __proto__: null, value: bindingName }); return query; } // This is the callback-based resolver. There is another similar // resolver in dns/promises.js with resolve methods that are based // on promises instead. const { Resolver, resolveMap } = createResolverClass(resolver); Resolver.prototype.resolve = resolve; function resolve(hostname, rrtype, callback) { let resolver; if (typeof rrtype === 'string') { resolver = resolveMap[rrtype]; } else if (typeof rrtype === 'function') { resolver = resolveMap.A; callback = rrtype; } else { throw new ERR_INVALID_ARG_TYPE('rrtype', 'string', rrtype); } if (typeof resolver === 'function') { return ReflectApply(resolver, this, [hostname, callback]); } throw new ERR_INVALID_ARG_VALUE('rrtype', rrtype); } module.exports = { Resolver, };