tjfontaine / node-dns

Replacement dns module in pure javascript for node.js
MIT License
585 stars 153 forks source link

NAPTR in Server #34

Closed avimar closed 11 years ago

avimar commented 11 years ago

Hi - it doesn't look like NAPTR in the server works. Not that I fully understand what i'm doing...

I know it's not in the readme.. could it be implemented?

  response.answer.push(dns.NAPTR({
    name: request.question[0].name,
    data: 'sip:12122221111;rn=16465111000;npdi@204.100.100.100',
    ttl: 10
    }));

AssertionError: missing value
    at writeUInt16 (buffer.js:883:12)
    at Buffer.writeUInt16BE (buffer.js:912:3)
    at BufferCursor._write (/home/avi/lrn-server/node_modules/native-dns/node_modules/buffercursor/buffercursor.js:53:22)
    at Object.keys.forEach.arr.forEach.BufferCursor.(anonymous function) [as writeUInt16BE] (/home/avi/lrn-server/node_modules/native-dns/node_modules/buffercursor/buffercursor.js:178:19)
    at Function.Packet.write (/home/avi/lrn-server/node_modules/native-dns/lib/packet.js:363:16)
    at Packet.send (/home/avi/lrn-server/node_modules/native-dns/lib/packet.js:64:16)
    at null.<anonymous> (/home/avi/lrn-server/endpoint_enum.js:47:12)
    at EventEmitter.emit (events.js:91:17)
    at Server.handleMessage (/home/avi/lrn-server/node_modules/native-dns/lib/server.js:68:10)
    at Socket.UDPServer (/home/avi/lrn-server/node_modules/native-dns/lib/server.js:80:10)
tjfontaine commented 11 years ago

You're missing required fields for this dns type

{
  ttl:,
  name:,
  order:,
  preference:,
  flags:,
  service:,
  regexp:,
  replacement:,
}

class and type are also required fields, but are implicitly set when using the dns.NAPTR constructor. ttl and name are required and common to all dns record types. While I admit error handling on this case could be better, the responsibility for filling out default values and range checking will mostly need to be done by the consumer.

I will reference this issue under a separate issue for better error handling

tjfontaine commented 11 years ago

order and preference are numbers

flags, service, regexp, replacement are strings