{"_id":"mname-client","_rev":"43-25e21e9402b201ed4a681a19ae3a4444","name":"mname-client","dist-tags":{"latest":"0.6.1"},"versions":{"0.3.6":{"name":"mname-client","version":"0.3.6","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.3.6","maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"81de5274abdd3fadd62bb4661e87064fe66a82ad","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.3.6.tgz","integrity":"sha512-V1BE92sUPaZrvghWu3/vXuTLOAPg32W5zv/iG1+fkAft8J5kOYH1CfSJbcrHOEw9xOM6Bf7Qai181c/7mciULA==","signatures":[{"sig":"MEUCIQDzXqI2/YPH2/rWaJ0JZ1UmzJPctpn48zTGLGhh2/6SDQIgXeitGvnzT1LaxJpv0ItMkrBpvMjq2k2fqA+sT4iRyxg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"81de5274abdd3fadd62bb4661e87064fe66a82ad","engines":{"node":">=0.8"},"gitHead":"38deac13a91b26697bf079e362b94152bc76d406","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"repository":{"url":"git://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"2.15.9","description":"DNS client library for node.js","directories":{},"_nodeVersion":"0.12.15","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client-0.3.6.tgz_1475196411660_0.17805386637337506","host":"packages-12-west.internal.npmjs.com"}},"0.3.7":{"name":"mname-client","version":"0.3.7","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.3.7","maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"700f4031ac20e74a63770775d6ea0981598cb0ce","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.3.7.tgz","integrity":"sha512-aadP2IxcgEvGo4BOKpq4gTlu29kJOOSZANDiFOP5xWzJNhsJA5zeroxClpk5HqfW4ZBIg2cgasd88S3KpIJLCg==","signatures":[{"sig":"MEYCIQDdeB1/769n80a0aeiDzK12PNh/iHsy5HW446rPcEIqgQIhAMKNqp3fN1gWKTSIFvpnydQs9zpDa88LJzABB2CrFjRK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"700f4031ac20e74a63770775d6ea0981598cb0ce","engines":{"node":">=0.8"},"gitHead":"eeba45b2830d3c93488a3c032822cbd1191c939e","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"repository":{"url":"git://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"2.15.9","description":"DNS client library for node.js","directories":{},"_nodeVersion":"0.12.15","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client-0.3.7.tgz_1475273806922_0.778714461484924","host":"packages-12-west.internal.npmjs.com"}},"0.4.0":{"name":"mname-client","version":"0.4.0","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.4.0","maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"c4a19c99a3d6943e3aeba972f2453621d892f130","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.4.0.tgz","integrity":"sha512-k8kJVQOYicJoxannavOfDWcsqhg4nek+/wftomI6JyaUJQVp/qZpmY2OQb1GHfKxgMqjK9pW/guAsCWCYnDwgw==","signatures":[{"sig":"MEUCIFIgr9O5g0NfLxpEvTG2/wqTDe4wR9orLMCCQVq0CUPFAiEA1Ukq6K9e3GisMy8pwnUS4BUuUBoC2rMXJquaGsyxUpw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"c4a19c99a3d6943e3aeba972f2453621d892f130","engines":{"node":">=0.8"},"gitHead":"008aa6a8574698553a38ab5d23540deb9930e5d0","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"repository":{"url":"git://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"2.15.9","description":"DNS client library for node.js","directories":{},"_nodeVersion":"0.12.15","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client-0.4.0.tgz_1480560446155_0.13578931614756584","host":"packages-12-west.internal.npmjs.com"}},"0.5.0":{"name":"mname-client","version":"0.5.0","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.5.0","maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"785a1284466691c4943d76967afce192b0ef8feb","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.5.0.tgz","integrity":"sha512-7WaXbzsLqzJDezX8VZcLbS9HyK487YjvEgKsRiaYhsBKoc9ZwXxXVEs7gAZYZi0B6xFJJ50/coMjNlxcG04gzA==","signatures":[{"sig":"MEUCIQCjsom42xADHjFfCrqHbWi6rO0KJ5IYpU3KDSBwZ0227AIgHTP5UBUabtesye2nGixl/i6muotx3xUmQN7vzYdODBY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"785a1284466691c4943d76967afce192b0ef8feb","engines":{"node":">=0.8"},"gitHead":"8e8b253e12ad022bd1580789d486009cd9b12f0c","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"repository":{"url":"git://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"2.15.9","description":"DNS client library for node.js","directories":{},"_nodeVersion":"0.12.15","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client-0.5.0.tgz_1481152255111_0.5933257432188839","host":"packages-12-west.internal.npmjs.com"}},"0.5.1":{"name":"mname-client","version":"0.5.1","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.5.1","maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"862815303bd91932f070f1719e7b55695c700b40","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.5.1.tgz","integrity":"sha512-C7Dvzrr+gnLWy8C8GTM4CfE37cplmYzMY0VO5UzCj3hmykFPNv4guGlWNhrg5qj6tSLvVRSdxuChJvlA2ECoJA==","signatures":[{"sig":"MEUCIQChoZrBp+6eIqPdYz/83wo6Pq5TE1Y+G/RfDB/+evSStwIgdk/4e0Rp+O9+K3uhhNvzHVB5XMF6xwv9Vdb9NwwWkGI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"862815303bd91932f070f1719e7b55695c700b40","engines":{"node":">=0.8"},"gitHead":"b845b6caac2b3826f707d5b62b9839c9e1a3c3d9","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"repository":{"url":"git://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"2.15.9","description":"DNS client library for node.js","directories":{},"_nodeVersion":"0.12.15","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client-0.5.1.tgz_1482190138202_0.4412932463455945","host":"packages-12-west.internal.npmjs.com"}},"0.6.0":{"name":"mname-client","version":"0.6.0","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.6.0","maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"8675461d49d73b7f640ab038972f61c5f355f729","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.6.0.tgz","integrity":"sha512-tBcnpcSJLQCT6LUv719wFVEG2XQEf4snoj6hNV7pBIHdvy/+Mk7rFrxSM67O1J8ySKNfrqI6dLA0B4ehR38Zrg==","signatures":[{"sig":"MEQCIEelN7refuaCxVsX64nkp6F7QtUIoALhhsqn1+h+HAPNAiBo+gcDol79aQO7Hj8MFB6KERZuqkYelUAMUXW6BtWXRA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","_shasum":"8675461d49d73b7f640ab038972f61c5f355f729","engines":{"node":">=0.8"},"gitHead":"97ce12050abd22674bed9afbc36190f2da10a71f","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"repository":{"url":"git://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"4.2.0","description":"DNS client library for node.js","directories":{},"_nodeVersion":"0.12.18","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client-0.6.0.tgz_1505515382785_0.3610394545830786","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"mname-client","version":"0.6.1","author":{"name":"Joyent, Inc"},"license":"MPL-2.0","_id":"mname-client@0.6.1","maintainers":[{"name":"todd.whiteman","email":"todd.whiteman@joyent.com"},{"name":"kusor","email":"kusorbox@gmail.com"},{"name":"wyatt","email":"wpreul@gmail.com"},{"name":"michael.hicks","email":"michael.hicks@joyent.com"},{"name":"bahamat","email":"bahamat@digitalelf.net"},{"name":"chudley","email":"aguycalledrichard@gmail.com"},{"name":"tchameroy","email":"tyler.chameroy@joyent.com"},{"name":"dbuell","email":"dayne.buell@joyent.com"},{"name":"dap","email":"dap@cs.brown.edu"},{"name":"jclulow","email":"josh@sysmgr.org"},{"name":"arekinath","email":"alex@cooperi.net"}],"contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"homepage":"https://github.com/arekinath/node-mname-client#readme","bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"dist":{"shasum":"ff362defb6e7141d4fa0ce00059751fbfe8fe15a","tarball":"https://registry.npmjs.org/mname-client/-/mname-client-0.6.1.tgz","fileCount":8,"integrity":"sha512-q5DuRuQQeSlAnONWPQnh/BOFToKXibPtYg+sEllBLYgiU2whx1cdtXxAloIJwRLFzVNqFlrq+KUNKnW+7AUV1w==","signatures":[{"sig":"MEYCIQCYNpjdZQhJzIBWYtbLHg9TDyk3N/l4bCXu/wekwy4LmgIhALEM87VLDs+QAtbsSCT5Sot2gf4Ba6h54gEVTLR83Wxb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2za1CRA9TVsSAnZWagAA4pgP+gPk5jPNrPkQdGWGPXCq\nVKnPE856DwNNq41VyBzaW3kXEDCmNpp0XGfXiQMVo+BuHKdTTKFvjJdQTVv7\n1v09T4AEB7zyqansvM702VIFPSpauME01ww+c8TyZIEOWgnxhjDvLYMSjG14\nzqPRkB5PIpZ88ZX7UyhANPSEVbAhb+DbmZElmW+fV7IADt1oU4RDNYUNPjGZ\nqeLpn3Qw+LxERlYe1SazkfZdmLq9X+invv6VwnPfZ09n0Fm9S2xVwAmlWm5l\njOxm2inRyr0aLkMhDF4tAxFkMxwT/TUj7qL0RhuCUhBHRH9Be5ijD9fZrp4I\nqcehGZB90g+apWiioSU8HYmdLYErMx7wKtTEg/rmWKl1YWsa6zmDfWdsjh2O\nnN25bbBedFLWb5Q0bR1fzo+MotXKB7OczJKFMjir2s0r5jVRqMaNrZPwNEQD\n0zNCgWStCoemggD7n3ktg/f669+tSdawvUvyWp9iaqzoRuhTPWRvUnCyYcpN\nxZnHnOyYygjcOsXfjsmk469JiVWkju8vnwcAkGFoNoh4FrmPz9JVTgI4qV7j\nIJjpahvJbeekbiCCBNHYH5WnB4RQyzROxRzslfuI2BUrYQEHjG4Y+D0igeKq\nHACEEuSiGHlIo6uI+ys0TEwDW0RObcr9nixNlVy9+LJ8Qv0yBP4xr9dbYbj3\nB1Rl\r\n=1GDj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","engines":{"node":">=0.8"},"gitHead":"ff7666fb757c59de3daf95ac429cfea73ed3b6f8","scripts":{"test":"tape test/*.test.js"},"_npmUser":{"name":"bahamat","email":"bahamat@digitalelf.net"},"repository":{"url":"git+https://github.com/arekinath/node-mname-client.git","type":"git"},"_npmVersion":"6.14.13","description":"DNS client library for node.js","directories":{},"_nodeVersion":"12.22.7","dependencies":{"mname":"^1.0.8","verror":"^1.6.1","assert-plus":"^0.2.0","bloomfilter":"0.0.16","mooremachine":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tape":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mname-client_0.6.1_1635949518675_0.9492578947190029","host":"s3://npm-registry-packages"}}},"time":{"created":"2016-09-30T00:46:51.886Z","modified":"2025-11-26T18:15:53.729Z","0.3.6":"2016-09-30T00:46:51.886Z","0.3.7":"2016-09-30T22:16:47.146Z","0.4.0":"2016-12-01T02:47:26.376Z","0.5.0":"2016-12-07T23:10:55.336Z","0.5.1":"2016-12-19T23:28:58.423Z","0.6.0":"2017-09-15T22:43:02.914Z","0.6.1":"2021-11-03T14:25:18.854Z"},"bugs":{"url":"https://github.com/arekinath/node-mname-client/issues"},"author":{"name":"Joyent, Inc"},"license":"MPL-2.0","homepage":"https://github.com/arekinath/node-mname-client#readme","repository":{"url":"git+https://github.com/arekinath/node-mname-client.git","type":"git"},"description":"DNS client library for node.js","contributors":[{"name":"Mark Cavage"},{"name":"Alex Wilson"},{"name":"Lorenz Brun"}],"maintainers":[{"email":"todd.whiteman@joyent.com","name":"todd.whiteman"},{"email":"kusorbox@gmail.com","name":"kusor"},{"email":"michael.hicks@joyent.com","name":"michael.hicks"},{"email":"bahamat@digitalelf.net","name":"bahamat"},{"email":"Tr@visPaul.me","name":"tpaul"},{"email":"danmcd@edgecast.io","name":"kebesays"},{"email":"dap@cs.brown.edu","name":"dap"},{"email":"josh@sysmgr.org","name":"jclulow"},{"email":"alex@cooperi.net","name":"arekinath"}],"readme":"# node-named-client\n\nA DNS client library using the packet parsing/generating code from node-mname.\n\n## Example\n\n```js\nconst mod_mname_client = require('mname-client');\n\nvar client = new mod_name_client.DnsClient({\n    /* Will try all of the set name servers in parallel. */\n    resolvers: ['8.8.8.8', '8.8.4.4']\n});\n\nclient.lookup({\n    domain: 'google.com',\n    type: 'AAAA',\n    timeout: 3000\n}, function (err, message) {\n        if (err) {\n                /* ... */\n                return;\n        }\n        var ans = msg.getAnswers();\n        /* ans will look like: */\n        ans = [ { name: 'google.com',\n          type: 'A',\n          class: 'IN',\n          ttl: 299,\n          target: '216.58.192.14' } ];\n});\n```\n\n## Example (low-level API)\n\n```js\nconst mod_mname_client = require('mname-client');\n\nvar req = new mod_mname_client.DnsMessage();\n\nreq.addQuestion('google.com', 'A');\nreq.addEDNS({ maxUDPLength: 1480 });\n\nreq.on('error', function (err) {\n  /*\n   * For socket-level errors that occurred while our request was\n   * outstanding\n   */\n  ...\n});\nreq.on('reply', function (msg, done) {\n  if (msg.isError()) {\n    /* For successful DNS queries that returned an error code. */\n    var e = msg.toError();\n    ...\n    done();\n    return;\n  }\n  var ans = msg.getAnswers();\n  /* ans will look like: */\n  ans = [ { name: 'google.com',\n    type: 'A',\n    class: 'IN',\n    ttl: 299,\n    target: '216.58.192.14' } ];\n\n  /*\n   * Need to call done() to indicate that this query is complete.\n   * This is important so that AXFR and similar queries that can result\n   * in multiple replies know when they are finished (the receiver of\n   * the results can tell by comparing the SOA at the top and bottom)\n   */\n  done();\n});\n\nvar sock = new mod_mname_client.DnsTcpSocket({\n  address: '8.8.8.8',\n  port: 53\n});\nsock.on('ready', function () {\n  /*\n   * sock.send can throw if the query cannot be encoded (e.g. it's\n   * way too big)\n   */\n  sock.send(req);\n\n  /* Call end once you've added all pipelined queries you want. */\n  sock.end();\n});\nsock.on('error', function (err) {\n  /*\n   * A socket-level error resulting in this connection being unusable.\n   * If this happens after sock.send() was called in on('ready') above, then\n   * we will get an 'error' event on the req as well.\n   */\n});\n\nvar sock = new mod_mname_client.DnsUdpSocket({ family: 'udp4' });\nsock.on('ready', function () {\n  /*\n   * You have to provide a destination to send on a DnsUdpSocket, as you\n   * can re-use the one bound socket for multiple destinations.\n   */\n  sock.send(req, { address: '8.8.8.8', port: 53 });\n\n  /* Will cause the socket to close after the last outstanding query returns. */\n  sock.end();\n});\nsock.on('error', function (err) {\n  /* A socket-level error resulting in this socket being unusable. */\n});\n```\n\n## API\n\n### `new mod_mname_client.DnsClient([options])`\n\nParameters:\n - `options` -- an optional Object, with keys:\n   * `resolvers` -- an optional Array of String, IP addresses of nameservers\n     to use\n   * `concurrency` -- an optional Number, max number of requests to send at\n     once, default 3\n\n### `DnsClient#close()`\n\nEnds all sockets and waits for outstanding DNS requests to finish or time out\nbefore closing.\n\n### `DnsClient#lookup(options, cb)`\n\nLook up a name and return the first successful result as a DnsMessage.\n\nParameters:\n - `options` -- Object, with keys:\n   * `domain` -- String, domain to look up\n   * `type` -- String, the query type (qtype), e.g. `\"AAAA\"`\n   * `timeout` -- Number, milliseconds\n   * `resolvers` -- optional Array of String, resolvers to use just for this\n     request\n   * `filter` -- optional Func `(msg)`, if provided will run on each DnsMessage\n     before sending (useful to set flags or sign requests)\n - `cb` -- Func `(err, message)` with parameters:\n   * `err` -- either `null` or an `Error` instance\n   * `message` -- a DnsMessage (if `err` is `null`)\n\n### `new mod_mname_client.DnsMessage()`\n\nConstruct a new, empty DNS message. The message is also an EventEmitter.\n\n### `DnsMessage->error(err)`\n\nEvent emitted when the DNS message experiences an error because of a network\nor system failure. This is not emitted if the message receives a reply that is\nan error-type reply (e.g. `isError()` on the reply would return `true`).\n\nParameters:\n - `err` -- an Error object\n\n### `DnsMessage->reply(msg)`\n\nEvent emitted when a reply to the DNS message is received.\n\nParameters:\n - `msg` -- a DnsMessage instance\n\n### `DnsMessage#isError()`\n\nReturns `true` if this message indicates an error (either by the rcode being\nsomething other than `NOERROR`, or the truncation flag being set).\n\n### `DnsMessage#toError([resolver])`\n\nConverts the DnsMessage into an `Error` object with a descriptive message about\nthe error that occurred. The optional `resolver` parameter is included in the\nError messages.\n\nIf the DnsMessage does not represent any kind of error condition, this function\nreturns `null`. The returned errors will be named either `TruncationError` or\n`DnsError`.\n\nParameters:\n - `resolver` -- optional String, resolver IP or name to include in error\n   message\n\n### `DnsMessage#getAnswers()`\n\nReturns the answer part of the DNS message as an Array of Record Objects, of\nthe form:\n\n```json\n{\n  \"name\": \"domain.foo.com\",\n  \"type\": \"AAAA\",\n  \"class\": \"IN\",\n  \"ttl\": 30,\n  \"address\": \"abcd::1\"\n}\n```\n\nThe `name`, `type`, `class` and `ttl` properties are available on all types of\nrecord. Other fields such as `address` appear only on the relevant `type`.\n\n### `DnsMessage#getAuthority()`\n\nReturns the authority section of the DNS message as an Array of Record Objects\n(see `getAnswers()`).\n\n### `DnsMessage#getAdditionals()`\n\nReturns the additional section of the DNS message as an Array of Record Objects\n(see `getAnswers()`).\n\n### `DnsMessage#testFlag(flag)`\n\nReturns `true` if a given flag is set in the message header. Valid flag names:\n\n - `qr`, `response`\n - `aa`, `authoritative`\n - `rd`, `recursionDesired`\n - `ra`, `recursionAvailable`\n - `ad`, `authenticated`\n - `cd`, `noChecking`\n - `cd`, `checkingDisabled`\n\nParameters:\n - `flag` -- a String\n\n### `DnsMessage#setFlag(flag)`\n### `DnsMessage#clearFlag(flag)`\n\nSets or clears a given flag (see `testFlag()` for a list of values).\n\nParameters:\n - `flag` -- a String\n\n### `DnsMessage#addQuestion(name, type, qclass)`\n\nAdds a question section to the DNS message.\n\nParameters:\n - `name` -- a String, the domain name to be questioned\n - `type` -- a String, the record type desired (e.g. `'AAAA'`)\n - `qclass` -- a String, the query class (e.g. `'IN'`)\n\n### `DnsMessage#addEDNS(options)`\n\nAdds EDNS to the message.\n\nParameters\n - `options` -- an Object, with keys:\n   * `maxUDPLength` -- a Number, the maximum length of UDP frames\n\n### `new mod_mname_client.DnsTcpSocket(options)`\n\nCreates a new TCP-based DNS client socket.\n\nParameters:\n - `options` -- an Object, with keys:\n   * `address` -- a String, IP address of remote machine\n   * `port` -- a Number, the port to connect to\n\n### `new mod_mname_client.DnsUdpSocket(options)`\n\nCreates a new UDP-based DNS client socket.\n\nParameters:\n - `options` -- an Object, with keys:\n   * `family` -- a String, either `'udp4'` or `'udp6'`\n\n### `DnsSocket->ready()`\n\nEvent emitted by `DnsTcpSocket` or `DnsUdpSocket` when the socket is open and\nready for use.\n\n### `DnsSocket->error(err)`\n\nEvent emitted by `DnsTcpSocket` or `DnsUdpSocket` when a socket-level error is\nexperienced.\n\nParameters:\n - `err` -- an Error object\n\n### `DnsSocket#end()`\n\nWait for any outstanding requests to complete, and then close the socket.\n\n### `DnsSocket#isReady()`\n\nReturns `true` if the socket has emitted the `->ready` event.\n\n### `DnsSocket#send(msg[, destination])`\n\nSends a DnsMessage over the socket.\n\nParameters:\n - `msg` -- a DnsMessage object\n - `destination` -- a String, optional for TCP sockets, required for UDP (must\n   be remote address to send message to)\n","readmeFilename":"README.md"}