Hi Ben,
On Thursday, 31 January 2013 19:10:21 UTC, Ben Noordhuis wrote:
Not sure, it seems to work for me:
$ out/Release/node tmp/dns-econn.js
{ [Error: queryA ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND',
syscall: 'queryA' }
The error code is ENOTFOUND for backwards compatibility but
essentially means NXDOMAIN (which is what dig returns for that
domain).
Maybe run strace on the script to see what it's doing.
Can you try again with that hostname (
servfail.test.snert.net) as this was only returning SERVFAIL for my IP at the time, we've since managed to break it properly for everyone ;-)
strace shows that packets are responded to and being as this is UDP - there's no connections being refused or any truncated data causing a TCP lookup:
0.000218 connect(7, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
0.000222 send(7, "Nx\1\0\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 41, MSG_NOSIGNAL) = 41
0.000416 futex(0xb770046c, FUTEX_WAKE_PRIVATE, 1) = 1
0.000264 epoll_ctl(3, EPOLL_CTL_ADD, 4, {EPOLLIN, {u32=4, u64=4294967300}}) = 0
0.000147 epoll_ctl(3, EPOLL_CTL_ADD, 5, {EPOLLIN, {u32=5, u64=4294967301}}) = 0
0.000141 epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=7, u64=4294967303}}) = 0
0.000168 epoll_wait(3, {{EPOLLIN, {u32=7, u64=4294967303}}}, 64, 0) = 1
0.000207 clock_gettime(CLOCK_MONOTONIC, {18616500, 71519938}) = 0
0.000183 recvfrom(7, "Nx\201\202\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 513, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 41
0.000466 send(7, "Nx\1\0\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 41, MSG_NOSIGNAL) = 41
0.000445 recvfrom(7, "Nx\201\202\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 513, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 41
0.000506 send(7, "Nx\1\0\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 41, MSG_NOSIGNAL) = 41
0.000860 recvfrom(7, 0xbf837b9f, 513, 0, 0xbf837da0, 0xbf837dbc) = -1 EAGAIN (Resource temporarily unavailable)
0.000129 clock_gettime(CLOCK_MONOTONIC, {18616500, 74108425}) = 0
0.000133 epoll_wait(3, {{EPOLLIN, {u32=7, u64=4294967303}}}, 64, 953) = 1
0.107171 clock_gettime(CLOCK_MONOTONIC, {18616500, 181412884}) = 0
0.000165 recvfrom(7, "Nx\201\202\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 513, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 41
0.000449 send(7, "Nx\1\0\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 41, MSG_NOSIGNAL) = 41
0.000431 recvfrom(7, "Nx\201\202\0\1\0\0\0\0\0\0\10servfail\4test\5snert\3net\0\0\1\0\1", 513, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 41
0.000532 futex(0xb770046c, FUTEX_WAKE_PRIVATE, 1) = 1
0.001138 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
0.001087 futex(0xb770046c, FUTEX_WAKE_PRIVATE, 1) = 1
0.000390 ioctl(1, TIOCGWINSZ, {ws_row=32, ws_col=132, ws_xpixel=0, ws_ypixel=0}) = 0
0.000336 rt_sigaction(SIGWINCH, {0x82003a0, ~[RTMIN RT_1], SA_RESTART}, NULL, 8) = 0
0.000515 futex(0xb770046c, FUTEX_WAKE_PRIVATE, 1) = 1
0.001139 futex(0xb770046c, FUTEX_WAKE_PRIVATE, 1) = 1
0.000914 write(1, "{ [Error: queryA ECONNREFUSED]\n code: 'ECONNREFUSED',\n errno: 'ECONNREFUSED',\n syscall: 'queryA' }\n", 102{ [Error: queryA ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'queryA' }
) = 102
Regards,
Steve.