Package: dnsutils
Version: 1:9.8.1.dfsg.P1-4.2
Severity: normal
File: /usr/bin/dig
Tags: patch

Hi,

I noticed the "Received" line shown by +trace option contains two IP addresses 
like this: 192.203.230.10#53(192.203.230.10)
However, in dig version 9.7, the later IP address was a hostname like this: 
192.33.14.30#53(b.gtld-servers.net)

Here is a comparison between version 9.8.1 and 9.7.3:

  % dig +trace www.example.com

  ; <<>> DiG 9.8.1-P1 <<>> +trace www.example.com
  ;; global options: +cmd
  .                       23473   IN      NS      a.root-servers.net.
  .                       23473   IN      NS      b.root-servers.net.
  [...]
  .                       23473   IN      NS      m.root-servers.net.
  ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 228 ms

  com.                    172800  IN      NS      a.gtld-servers.net.
  com.                    172800  IN      NS      b.gtld-servers.net.
  [...]
  com.                    172800  IN      NS      m.gtld-servers.net.
  ;; Received 496 bytes from 192.203.230.10#53(192.203.230.10) in 385 ms

  example.com.            172800  IN      NS      a.iana-servers.net.
  example.com.            172800  IN      NS      b.iana-servers.net.
  ;; Received 169 bytes from 192.35.51.30#53(192.35.51.30) in 195 ms

  www.example.com.        172800  IN      A       192.0.43.10
  example.com.            172800  IN      NS      a.iana-servers.net.
  example.com.            172800  IN      NS      b.iana-servers.net.
  ;; Received 97 bytes from 199.43.132.53#53(199.43.132.53) in 140 ms



  % dig +trace www.example.com

  ; <<>> DiG 9.7.3 <<>> +trace www.example.com
  ;; global options: +cmd
  .                       22141   IN      NS      a.root-servers.net.
  [...]
  .                       22141   IN      NS      m.root-servers.net.
  ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 27 ms

  com.                    172800  IN      NS      h.gtld-servers.net.
  [...]
  com.                    172800  IN      NS      c.gtld-servers.net.
  ;; Received 493 bytes from 128.8.10.90#53(d.root-servers.net) in 203 ms

  example.com.            172800  IN      NS      a.iana-servers.net.
  example.com.            172800  IN      NS      b.iana-servers.net.
  ;; Received 169 bytes from 192.33.14.30#53(b.gtld-servers.net) in 67 ms

  www.example.com.        172800  IN      A       192.0.43.10
  example.com.            172800  IN      NS      a.iana-servers.net.
  example.com.            172800  IN      NS      b.iana-servers.net.
  ;; Received 97 bytes from 199.43.132.53#53(a.iana-servers.net) in 124 ms


I think showing the same two IP addresses is not useful and is not an expected 
behavior.
So I investigated the source code of dig to solve this problem.

The "Received" lines are printed in dig.c as following.
In this code, the value of query->servname was a hostname in version 9.7, but 
now is an IP addresses.

                printf(";; Received %" ISC_PRINT_QUADFORMAT "u bytes "
                       "from %s(%s) in %d ms\n\n",
                       query->lookup->doing_xfr ?
                                query->byte_count : (isc_uint64_t)bytes,
                       fromtext, query->servname,
                       (int)diff/1000);


Luckily, query has an another member "userarg" which holds the hostname. 
Simply using query->userarg instead of query->servname seems to solve the 
problem.

  --- dig.c.orig        2011-03-11 15:46:58.000000000 +0900
  +++ dig.c     2012-10-13 02:40:42.507458925 +0900
  @@ -276,7 +276,7 @@
                         "from %s(%s) in %d ms\n\n",
                         query->lookup->doing_xfr ?
                                  query->byte_count : (isc_uint64_t)bytes,
  -                    fromtext, query->servname,
  +                    fromtext, query->userarg,
                         (int)diff/1000);
          }
   }


By applying the above patch, dig shows the hostname in the "Received" line like 
before.

  % ./dig +trace www.example.com

  ; <<>> DiG 9.8.1-P1 <<>> +trace www.example.com
  ;; global options: +cmd
  .                       19809   IN      NS      a.root-servers.net.
  [...]
  .                       19809   IN      NS      m.root-servers.net.
  ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 223 ms

  com.                    172800  IN      NS      a.gtld-servers.net.
  [...]
  com.                    172800  IN      NS      m.gtld-servers.net.
  ;; Received 496 bytes from 192.203.230.10#53(e.root-servers.net) in 377 ms

  example.com.            172800  IN      NS      a.iana-servers.net.
  example.com.            172800  IN      NS      b.iana-servers.net.
  ;; Received 169 bytes from 192.54.112.30#53(h.gtld-servers.net) in 305 ms

  www.example.com.        172800  IN      A       192.0.43.10
  example.com.            172800  IN      NS      a.iana-servers.net.
  example.com.            172800  IN      NS      b.iana-servers.net.
  ;; Received 97 bytes from 199.43.132.53#53(a.iana-servers.net) in 132 ms


Regards,


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-4-686-pae (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dnsutils depends on:
ii  bind9-host [host]  1:9.8.1.dfsg.P1-4.2
ii  host               1:9.8.1.dfsg.P1-4.2
ii  libbind9-80        1:9.8.1.dfsg.P1-4.2
ii  libc6              2.13-35
ii  libcap2            1:2.22-1.2
ii  libdns81           1:9.8.1.dfsg.P1-4.2
ii  libgssapi-krb5-2   1.10.1+dfsg-2
ii  libisc83           1:9.8.1.dfsg.P1-4.2
ii  libisccfg82        1:9.8.1.dfsg.P1-4.2
ii  libkrb5-3          1.10.1+dfsg-2
ii  liblwres80         1:9.8.1.dfsg.P1-4.2
ii  libssl1.0.0        1.0.1c-4

dnsutils recommends no packages.

Versions of packages dnsutils suggests:
pn  rblcheck  <none>

-- no debconf information


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to