chiark / gitweb /
Support IPv6 in addr queries.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 11 Jun 2014 00:02:49 +0000 (01:02 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 13 Jun 2014 08:57:42 +0000 (09:57 +0100)
This is the end-game.  Add flags and options to allow clients and
administrators to choose which address families they want returned.  For
logical compatibility with old clients, don't return foreign address
families unless explicitly requested.

Lots of tests are modified to select only IPv4 addresses.  There's
nothing else up my sleeve.  A new test is added for the additional
functionality; more are expected later.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
36 files changed:
client/adh-opts.c
client/adh-query.c
client/adnshost.h
client/adnstest.c
regress/case-abbrev.sys
regress/case-abbrevto.sys
regress/case-addr-multi-af.err [new file with mode: 0644]
regress/case-addr-multi-af.out [new file with mode: 0644]
regress/case-addr-multi-af.sys [new file with mode: 0644]
regress/case-adh-cancel.sys
regress/case-adh-cancel2.sys
regress/case-adh-norm.sys
regress/case-adh-pipe.sys
regress/case-brokenmail.sys
regress/case-datapluscname.sys
regress/case-datapluscnamewait.sys
regress/case-manyptrwrong.sys
regress/case-manyptrwrongrem.sys
regress/case-manyptrwrongrst.sys
regress/case-manyptrwrongrty.sys
regress/case-norecurse.sys
regress/case-norecurse2.sys
regress/case-norecurse3.sys
regress/case-owner.sys
regress/case-rootqueryall-as.sys
regress/case-rootqueryall.sys
regress/case-srvha.sys
regress/case-tcpallfail.sys
regress/case-tcpblock.sys
regress/case-tcpblockbrk.sys
regress/case-tcpblockwr.sys
regress/case-v6-transport-simple.sys
src/adns.h
src/internal.h
src/setup.c
src/types.c

index 7670ba5a115b9a24662c40f8a18bc9d40a394ea3..1521b5cadb35c090a4c46d5630f4c622de8b71a1 100644 (file)
@@ -31,7 +31,7 @@ int ov_env=1, ov_pipe=0, ov_asynch=0;
 int ov_verbose= 0;
 adns_rrtype ov_type= adns_r_none;
 int ov_search=0, ov_qc_query=0, ov_qc_anshost=0, ov_qc_cname=1;
-int ov_tcp=0, ov_cname=0, ov_v6map=0, ov_format=fmt_default;
+int ov_tcp=0, ov_cname=0, ov_afflags=0, ov_v6map=0, ov_format=fmt_default;
 char *ov_id= 0;
 struct perqueryflags_remember ov_pqfr = { 1,1,1, tm_none };
 
@@ -106,6 +106,13 @@ static const struct optioninfo perquery_options[]= {
   { ot_value,            "Do not show the TTL (default)",
     "Tn", "no-ttl",        &ov_pqfr.ttl, tm_none },
 
+  { ot_desconly, "per-query address family options (for `addr' etc.):" },
+  { ot_value,           "Only return IPv4 addresses",
+    "A4", "--addr-ipv4-only", &ov_afflags, adns_qf_want_ipv4 },
+  { ot_value,           "Only return IPv6 addresses",
+    "A6", "--addr-ipv6-only", &ov_afflags, adns_qf_want_ipv6 },
+  { ot_value,           "Return all available addresses (default)",
+    "Aa", "--addr-all",           &ov_afflags, 0 },
   { ot_flag,            "Return IPv4 addresses as IPv6-mapped",
     "Am", "--addr-ipv6-mapped", &ov_v6map, 1 },
   
index aa2918e430dff8b57fe4e0200a718e663145082c..1a78bdb8dc12601a6b5f98ce4f14b143d205e013 100644 (file)
@@ -93,7 +93,7 @@ static void prep_query(struct query_node **qun_r, int *quflags_r) {
     (ov_qc_anshost ? adns_qf_quoteok_anshost : 0) |
     (ov_qc_cname ? 0 : adns_qf_quoteok_cname) |
     (ov_v6map ? adns_qf_ipv6_mapv4 : 0) |
-    ov_cname;
+    ov_cname | ov_afflags;
     
   *qun_r= qun;
 }
index 69d93745832b2c48d3026b6361f29132815b69c8..a739399266dc6b082f8347048906fe0dc824c173 100644 (file)
@@ -42,6 +42,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
+#define ADNS_FEATURE_MANYAF
 #include "config.h"
 #include "adns.h"
 #include "dlist.h"
@@ -80,7 +81,7 @@ extern int ov_env, ov_pipe, ov_asynch;
 extern int ov_verbose;
 extern adns_rrtype ov_type;
 extern int ov_search, ov_qc_query, ov_qc_anshost, ov_qc_cname;
-extern int ov_tcp, ov_cname, ov_format, ov_v6map;
+extern int ov_tcp, ov_cname, ov_afflags, ov_v6map, ov_format;
 extern char *ov_id;
 extern struct perqueryflags_remember ov_pqfr;
 
index 20f7c31219db77830d3c7e69ec37795a08a3526f..99da619c0921e414190edcdcebda778b8761abd8 100644 (file)
@@ -32,6 +32,7 @@
 #include <string.h>
 #include <errno.h>
 
+#define ADNS_FEATURE_MANYAF
 #include "config.h"
 #include "adns.h"
 
index e1f2b4f3fa822248771312a069b8104231c945db..1b924338cb1dccaba58baf6e847b63ba09eae15f 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 ,a/greenend.org.uk
  start 929580078.542974
  socket domain=PF_INET type=SOCK_DGRAM
index 507c94a6480df523f68cc94fb88cd6e0e5608640..a1faf9a6f54a264136d1670dbb2de4667efd2f8d 100644 (file)
@@ -1,4 +1,4 @@
-adnstest noserver
+adnstest noserver -0x400
 ,a/greenend.org.uk
  start 929580082.699581
  socket domain=PF_INET type=SOCK_DGRAM
diff --git a/regress/case-addr-multi-af.err b/regress/case-addr-multi-af.err
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/regress/case-addr-multi-af.out b/regress/case-addr-multi-af.out
new file mode 100644 (file)
index 0000000..7fe4ea7
--- /dev/null
@@ -0,0 +1,164 @@
+adns debug: using nameserver 172.29.199.224
+maddr.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted
+maddr.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted
+mx.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted
+mx.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted
+maddr.dnserr.distorted.org.uk flags 0 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400
+ INET 198.51.100.1
+ INET 198.51.100.2
+ INET 192.0.2.2
+ INET 203.0.113.1
+ INET 203.0.113.2
+ INET 192.0.2.1
+maddr.dnserr.distorted.org.uk flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 0 type A(addr): OK; nrrs=12; cname=$; owner=$; ttl=14400
+ INET 198.51.100.1
+ INET 198.51.100.2
+ INET6 2001:db8:2::1
+ INET6 2001:db8:2::2
+ INET 203.0.113.1
+ INET 203.0.113.2
+ INET 192.0.2.1
+ INET 192.0.2.2
+ INET6 2001:db8:3::1
+ INET6 2001:db8:3::2
+ INET6 2001:db8:1::1
+ INET6 2001:db8:1::2
+maddr.dnserr.distorted.org.uk flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 1024 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400
+ INET 198.51.100.1
+ INET 198.51.100.2
+ INET 203.0.113.2
+ INET 192.0.2.1
+ INET 192.0.2.2
+ INET 203.0.113.1
+maddr.dnserr.distorted.org.uk flags 1024 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 1024 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400
+ INET 198.51.100.1
+ INET 198.51.100.2
+ INET 192.0.2.1
+ INET 192.0.2.2
+ INET 203.0.113.1
+ INET 203.0.113.2
+maddr.dnserr.distorted.org.uk flags 1024 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 1024 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 1024 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 2048 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400
+ INET6 2001:db8:2::2
+ INET6 2001:db8:2::1
+ INET6 2001:db8:3::1
+ INET6 2001:db8:3::2
+ INET6 2001:db8:1::1
+ INET6 2001:db8:1::2
+maddr.dnserr.distorted.org.uk flags 2048 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 2048 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400
+ INET6 2001:db8:2::1
+ INET6 2001:db8:2::2
+ INET6 2001:db8:3::1
+ INET6 2001:db8:3::2
+ INET6 2001:db8:1::1
+ INET6 2001:db8:1::2
+maddr.dnserr.distorted.org.uk flags 2048 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 2048 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 2048 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 3072 type A(addr): OK; nrrs=12; cname=$; owner=$; ttl=14400
+ INET 198.51.100.1
+ INET 198.51.100.2
+ INET6 2001:db8:2::1
+ INET6 2001:db8:2::2
+ INET 203.0.113.2
+ INET 192.0.2.1
+ INET 192.0.2.2
+ INET 203.0.113.1
+ INET6 2001:db8:1::2
+ INET6 2001:db8:3::1
+ INET6 2001:db8:3::2
+ INET6 2001:db8:1::1
+maddr.dnserr.distorted.org.uk flags 3072 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+maddr.dnserr.distorted.org.uk flags 3072 type A(addr): OK; nrrs=12; cname=$; owner=$; ttl=14400
+ INET 198.51.100.1
+ INET 198.51.100.2
+ INET6 2001:db8:2::1
+ INET6 2001:db8:2::2
+ INET 192.0.2.1
+ INET 192.0.2.2
+ INET 203.0.113.1
+ INET 203.0.113.2
+ INET6 2001:db8:3::1
+ INET6 2001:db8:3::2
+ INET6 2001:db8:1::1
+ INET6 2001:db8:1::2
+maddr.dnserr.distorted.org.uk flags 3072 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 3072 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 3072 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400
+mx.dnserr.distorted.org.uk flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.2 INET 198.51.100.1 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 )
+ 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 )
+ 69 aaaa.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 )
+mx.dnserr.distorted.org.uk flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 INET6 2001:db8:3::1 )
+ 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 )
+ 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 INET6 2001:db8::2 )
+mx.dnserr.distorted.org.uk flags 1024 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 )
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 )
+ 69 aaaa.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 )
+mx.dnserr.distorted.org.uk flags 1024 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 )
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 )
+ 69 aaaa.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 )
+mx.dnserr.distorted.org.uk flags 2048 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 )
+ 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 )
+ 69 a.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::2 )
+mx.dnserr.distorted.org.uk flags 2048 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET6 2001:db8:1::2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 )
+ 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 )
+ 69 a.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::2 )
+mx.dnserr.distorted.org.uk flags 3072 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 )
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 )
+ 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 INET6 2001:db8::2 )
+mx.dnserr.distorted.org.uk flags 3072 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400
+ 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 )
+ 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::2 INET6 2001:db8:2::1 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 )
+ 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 )
+ 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 INET6 2001:db8::2 )
+rc=0
diff --git a/regress/case-addr-multi-af.sys b/regress/case-addr-multi-af.sys
new file mode 100644 (file)
index 0000000..14b1661
--- /dev/null
@@ -0,0 +1,1236 @@
+./adnstest distorted
+:16842753,16842767,50397185,50397199 maddr.dnserr.distorted.org.uk mx.dnserr.distorted.org.uk 0x400/maddr.dnserr.distorted.org.uk 0x400/mx.dnserr.distorted.org.uk 0x800/maddr.dnserr.distorted.org.uk 0x800/mx.dnserr.distorted.org.uk 0xc00/maddr.dnserr.distorted.org.uk 0xc00/mx.dnserr.distorted.org.uk
+ start 1402445458.222480
+ socket domain=PF_INET type=SOCK_DGRAM
+ socket=6
+ +0.000026
+ fcntl fd=6 cmd=F_GETFL
+ fcntl=~O_NONBLOCK&...
+ +0.000012
+ fcntl fd=6 cmd=F_SETFL O_NONBLOCK|...
+ fcntl=OK
+ +0.000010
+ sendto fd=6 addr=172.29.199.224:53
+     31200100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001.
+ sendto=47
+ +0.000089
+ sendto fd=6 addr=172.29.199.224:53
+     31210100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000043
+ sendto fd=6 addr=172.29.199.224:53
+     31230100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001.
+ sendto=47
+ +0.000040
+ sendto fd=6 addr=172.29.199.224:53
+     31240100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000031
+ sendto fd=6 addr=172.29.199.224:53
+     31250100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000040
+ sendto fd=6 addr=172.29.199.224:53
+     31270100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001.
+ sendto=44
+ +0.000038
+ sendto fd=6 addr=172.29.199.224:53
+     31280100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000035
+ sendto fd=6 addr=172.29.199.224:53
+     312a0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001.
+ sendto=44
+ +0.000041
+ sendto fd=6 addr=172.29.199.224:53
+     312b0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001.
+ sendto=44
+ +0.000030
+ sendto fd=6 addr=172.29.199.224:53
+     312c0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000036
+ sendto fd=6 addr=172.29.199.224:53
+     312e0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001.
+ sendto=47
+ +0.000041
+ sendto fd=6 addr=172.29.199.224:53
+     312f0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000038
+ sendto fd=6 addr=172.29.199.224:53
+     31310100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001.
+ sendto=47
+ +0.000043
+ sendto fd=6 addr=172.29.199.224:53
+     31320100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     31340100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001.
+ sendto=44
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     31350100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000037
+ sendto fd=6 addr=172.29.199.224:53
+     31370100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001.
+ sendto=44
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     31380100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000037
+ sendto fd=6 addr=172.29.199.224:53
+     313a0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000045
+ sendto fd=6 addr=172.29.199.224:53
+     313b0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000038
+ sendto fd=6 addr=172.29.199.224:53
+     313d0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000054
+ sendto fd=6 addr=172.29.199.224:53
+     313e0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     31400100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001.
+ sendto=44
+ +0.000040
+ sendto fd=6 addr=172.29.199.224:53
+     31410100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000038
+ sendto fd=6 addr=172.29.199.224:53
+     31430100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001.
+ sendto=44
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     31440100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000038
+ sendto fd=6 addr=172.29.199.224:53
+     31460100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001.
+ sendto=47
+ +0.000046
+ sendto fd=6 addr=172.29.199.224:53
+     31470100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000031
+ sendto fd=6 addr=172.29.199.224:53
+     31480100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     314a0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001.
+ sendto=47
+ +0.000041
+ sendto fd=6 addr=172.29.199.224:53
+     314b0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000031
+ sendto fd=6 addr=172.29.199.224:53
+     314c0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001.
+ sendto=47
+ +0.000038
+ sendto fd=6 addr=172.29.199.224:53
+     314e0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001.
+ sendto=44
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     314f0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001.
+ sendto=44
+ +0.000033
+ sendto fd=6 addr=172.29.199.224:53
+     31500100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000040
+ sendto fd=6 addr=172.29.199.224:53
+     31520100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001.
+ sendto=44
+ +0.000039
+ sendto fd=6 addr=172.29.199.224:53
+     31530100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001.
+ sendto=44
+ +0.000029
+ sendto fd=6 addr=172.29.199.224:53
+     31540100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001.
+ sendto=44
+ +0.000038
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.998489
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.002108
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31208580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c0 000202c0
+     0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0
+     0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0
+     0c000100 01000038 400004c0 000201c0 12000200 01000038 40000d07 76616d70
+     69726502 6e73c012 c0120002 00010000 3840000d 0a74656c 65636173 746572c0
+     a3c01200 02000100 00384000 09067261 64697573 c0a3c012 00020001 00003840
+     000c0970 72656369 73696f6e c0a3c0cd 00010001 00003840 00043e31 cc92c0cd
+     001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c09b 00010001
+     00003840 00043e31 cc96c09b 001c0001 00003840 00102001 04701f09 1b980000
+     00000000 0006c0e2 00010001 00003840 0004d40d c646c0e2 001c0001 00003840
+     00102001 0ba80000 01d90000 00000000 0006c0b4 00010001 00003840 0004d40d
+     c647c0b4 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007.
+ +0.000161
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31218580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000082
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000013
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.996257
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000270
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31238580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c6 336401c0
+     0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0
+     0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0
+     0c000100 01000038 400004c0 000202c0 12000200 01000038 40000f09 70726563
+     6973696f 6e026e73 c012c012 00020001 00003840 000a0776 616d7069 7265c0a5
+     c0120002 00010000 3840000d 0a74656c 65636173 746572c0 a5c01200 02000100
+     00384000 09067261 64697573 c0a5c0e5 00010001 00003840 00043e31 cc92c0e5
+     001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0b6 00010001
+     00003840 00043e31 cc96c0b6 001c0001 00003840 00102001 04701f09 1b980000
+     00000000 0006c09b 00010001 00003840 0004d40d c646c09b 001c0001 00003840
+     00102001 0ba80000 01d90000 00000000 0006c0cc 00010001 00003840 0004d40d
+     c647c0cc 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007.
+ +0.000125
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000028
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.995834
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.005597
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31248580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000
+     00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000
+     000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0
+     0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00
+     01000038 40001020 010db800 02000000 00000000 000002c0 12000200 01000038
+     40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000c 09707265
+     63697369 6f6ec0eb c0120002 00010000 38400009 06726164 697573c0 ebc01200
+     02000100 00384000 0d0a7465 6c656361 73746572 c0ebc114 00010001 00003840
+     00043e31 cc92c114 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c0fc 00010001 00003840 0004d40d c646c0fc
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c129 00010001
+     00003840 0004d40d c647c129 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000159
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000046
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.990103
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000396
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31258580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000049
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000035
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.989663
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000161
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31278580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000069
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000019
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.989452
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000179
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31288580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00450461 616161c0
+     0fc00c00 0f000100 00384000 0a004505 6d616464 72c00fc0 0c000f00 01000038
+     40000900 46046164 6472c00f c00c000f 00010000 38400006 00450161 c00fc00f
+     00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100
+     00384000 0a077661 6d706972 65c094c0 0f000200 01000038 40000d0a 74656c65
+     63617374 6572c094 c00f0002 00010000 38400009 06726164 697573c0 94c07a00
+     01000100 00384000 04c63364 10c03a00 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c04f00 01000100 00384000 04c63364 02c04f00 01000100
+     00384000 04cb0071 01c04f00 01000100 00384000 04cb0071 02c04f00 01000100
+     00384000 04c00002 01c04f00 01000100 00384000 04c00002 02c04f00 01000100
+     00384000 04c63364 01.
+ +0.000167
+ sendto fd=6 addr=172.29.199.224:53
+     31560100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000104
+ sendto fd=6 addr=172.29.199.224:53
+     31580100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000083
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000029
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.988925
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000192
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     312a8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000070
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000020
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.988643
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000123
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     312b8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000069
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000019
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.988503
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000159
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     312c8580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 3840000a 0045056d 61646472
+     c00fc00c 000f0001 00003840 00090046 04616464 72c00fc0 0c000f00 01000038
+     40000600 450161c0 0fc00c00 0f000100 00384000 09004504 61616161 c00fc00f
+     00020001 00003840 00100a74 656c6563 61737465 72026e73 c00fc00f 00020001
+     00003840 000c0970 72656369 73696f6e c095c00f 00020001 00003840 00090672
+     61646975 73c095c0 0f000200 01000038 40000a07 76616d70 697265c0 95c06500
+     01000100 00384000 04c63364 10c07700 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c03a00 01000100 00384000 04cb0071 01c03a00 01000100
+     00384000 04cb0071 02c03a00 01000100 00384000 04c00002 01c03a00 01000100
+     00384000 04c00002 02c03a00 01000100 00384000 04c63364 01c03a00 01000100
+     00384000 04c63364 02.
+ +0.000169
+ sendto fd=6 addr=172.29.199.224:53
+     315a0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000079
+ sendto fd=6 addr=172.29.199.224:53
+     315c0100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000058
+ sendto fd=6 addr=172.29.199.224:53
+     315d0100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001.
+ sendto=46
+ +0.000045
+ sendto fd=6 addr=172.29.199.224:53
+     315f0100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001.
+ sendto=43
+ +0.000058
+ sendto fd=6 addr=172.29.199.224:53
+     31610100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000077
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     312e8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004cb 007102c0
+     0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0
+     0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0
+     0c000100 01000038 400004cb 007101c0 12000200 01000038 40000c06 72616469
+     7573026e 73c012c0 12000200 01000038 40000d0a 74656c65 63617374 6572c0a2
+     c0120002 00010000 3840000a 0776616d 70697265 c0a2c012 00020001 00003840
+     000c0970 72656369 73696f6e c0a2c09b 00010001 00003840 00043e31 cc92c09b
+     001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0cc 00010001
+     00003840 00043e31 cc96c0cc 001c0001 00003840 00102001 04701f09 1b980000
+     00000000 0006c0e2 00010001 00003840 0004d40d c646c0e2 001c0001 00003840
+     00102001 0ba80000 01d90000 00000000 0006c0b3 00010001 00003840 0004d40d
+     c647c0b3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007.
+ +0.000176
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     312f8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000085
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31318580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c0 000201c0
+     0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0
+     0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0
+     0c000100 01000038 400004cb 007102c0 12000200 01000038 40000c06 72616469
+     7573026e 73c012c0 12000200 01000038 40000a07 76616d70 697265c0 a2c01200
+     02000100 00384000 0c097072 65636973 696f6ec0 a2c01200 02000100 00384000
+     0d0a7465 6c656361 73746572 c0a2c09b 00010001 00003840 00043e31 cc92c09b
+     001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0b3 00010001
+     00003840 00043e31 cc96c0b3 001c0001 00003840 00102001 04701f09 1b980000
+     00000000 0006c0c9 00010001 00003840 0004d40d c646c0c9 001c0001 00003840
+     00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d
+     c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007.
+ +0.000175
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000044
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.987536
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000757
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31328580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000072
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31348580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000058
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000020
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.986707
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000275
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31358580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00460461 646472c0
+     0fc00c00 0f000100 00384000 06004501 61c00fc0 0c000f00 01000038 40000900
+     45046161 6161c00f c00c000f 00010000 3840000a 0045056d 61646472 c00fc00f
+     00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100
+     00384000 0d0a7465 6c656361 73746572 c094c00f 00020001 00003840 000a0776
+     616d7069 7265c094 c00f0002 00010000 38400009 06726164 697573c0 94c04f00
+     01000100 00384000 04c63364 10c06100 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c07600 01000100 00384000 04c00002 02c07600 01000100
+     00384000 04c63364 01c07600 01000100 00384000 04c63364 02c07600 01000100
+     00384000 04cb0071 01c07600 01000100 00384000 04cb0071 02c07600 01000100
+     00384000 04c00002 01.
+ +0.000186
+ sendto fd=6 addr=172.29.199.224:53
+     31630100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000086
+ sendto fd=6 addr=172.29.199.224:53
+     31650100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000072
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31378580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000094
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000019
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.986051
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000294
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31388580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 38400006 00450161 c00fc00c
+     000f0001 00003840 00090045 04616161 61c00fc0 0c000f00 01000038 40000a00
+     45056d61 646472c0 0fc00c00 0f000100 00384000 09004604 61646472 c00fc00f
+     00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100
+     00384000 09067261 64697573 c094c00f 00020001 00003840 000a0776 616d7069
+     7265c094 c00f0002 00010000 3840000d 0a74656c 65636173 746572c0 94c03a00
+     01000100 00384000 04c63364 10c04c00 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c06100 01000100 00384000 04c63364 01c06100 01000100
+     00384000 04c63364 02c06100 01000100 00384000 04cb0071 01c06100 01000100
+     00384000 04cb0071 02c06100 01000100 00384000 04c00002 01c06100 01000100
+     00384000 04c00002 02.
+ +0.000183
+ sendto fd=6 addr=172.29.199.224:53
+     31670100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000083
+ sendto fd=6 addr=172.29.199.224:53
+     31690100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000093
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     313a8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000
+     00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000
+     000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0
+     0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00
+     01000038 40001020 010db800 02000000 00000000 000001c0 12000200 01000038
+     40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000d0a 74656c65
+     63617374 6572c0ea c0120002 00010000 3840000a 0776616d 70697265 c0eac012
+     00020001 00003840 000c0970 72656369 73696f6e c0eac0e3 00010001 00003840
+     00043e31 cc92c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c114 00010001 00003840 00043e31 cc96c114 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0fb 00010001
+     00003840 0004d40d c647c0fb 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000202
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     313b8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000095
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000018
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.985203
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.001040
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     313d8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000
+     00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000
+     000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0
+     0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00
+     01000038 40001020 010db800 02000000 00000000 000002c0 12000200 01000038
+     40000d07 76616d70 69726502 6e73c012 c0120002 00010000 38400009 06726164
+     697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc012
+     00020001 00003840 000c0970 72656369 73696f6e c0ebc0fc 00010001 00003840
+     00043e31 cc92c0fc 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c111 00010001
+     00003840 0004d40d c647c111 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000235
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     313e8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000091
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31408580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000058
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31418580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00450461 616161c0
+     0fc00c00 0f000100 00384000 0a004505 6d616464 72c00fc0 0c000f00 01000038
+     40000900 46046164 6472c00f c00c000f 00010000 38400006 00450161 c00fc00f
+     00020001 00003840 000d0776 616d7069 7265026e 73c00fc0 0f000200 01000038
+     40000d0a 74656c65 63617374 6572c092 c00f0002 00010000 38400009 06726164
+     697573c0 92c00f00 02000100 00384000 0c097072 65636973 696f6ec0 92c07a00
+     01000100 00384000 04c63364 10c03a00 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c04f00 01000100 00384000 04c63364 02c04f00 01000100
+     00384000 04cb0071 01c04f00 01000100 00384000 04cb0071 02c04f00 01000100
+     00384000 04c00002 01c04f00 01000100 00384000 04c00002 02c04f00 01000100
+     00384000 04c63364 01.
+ +0.000157
+ sendto fd=6 addr=172.29.199.224:53
+     316b0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000087
+ sendto fd=6 addr=172.29.199.224:53
+     316d0100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001.
+ sendto=46
+ +0.000060
+ sendto fd=6 addr=172.29.199.224:53
+     316f0100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001.
+ sendto=43
+ +0.000057
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31438580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000057
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000019
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.983552
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000477
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31448580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 3840000a 0045056d 61646472
+     c00fc00c 000f0001 00003840 00090046 04616464 72c00fc0 0c000f00 01000038
+     40000600 450161c0 0fc00c00 0f000100 00384000 09004504 61616161 c00fc00f
+     00020001 00003840 00100a74 656c6563 61737465 72026e73 c00fc00f 00020001
+     00003840 00090672 61646975 73c095c0 0f000200 01000038 40000a07 76616d70
+     697265c0 95c00f00 02000100 00384000 0c097072 65636973 696f6ec0 95c06500
+     01000100 00384000 04c63364 10c07700 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c03a00 01000100 00384000 04cb0071 01c03a00 01000100
+     00384000 04cb0071 02c03a00 01000100 00384000 04c00002 01c03a00 01000100
+     00384000 04c00002 02c03a00 01000100 00384000 04c63364 01c03a00 01000100
+     00384000 04c63364 02.
+ +0.000172
+ sendto fd=6 addr=172.29.199.224:53
+     31710100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000093
+ sendto fd=6 addr=172.29.199.224:53
+     31730100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001.
+ sendto=46
+ +0.000059
+ sendto fd=6 addr=172.29.199.224:53
+     31750100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001.
+ sendto=43
+ +0.000058
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31468580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004cb 007102c0
+     0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0
+     0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0
+     0c000100 01000038 400004cb 007101c0 12000200 01000038 40000c06 72616469
+     7573026e 73c012c0 12000200 01000038 40000c09 70726563 6973696f 6ec0a2c0
+     12000200 01000038 40000a07 76616d70 697265c0 a2c01200 02000100 00384000
+     0d0a7465 6c656361 73746572 c0a2c09b 00010001 00003840 00043e31 cc92c09b
+     001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0cb 00010001
+     00003840 00043e31 cc96c0cb 001c0001 00003840 00102001 04701f09 1b980000
+     00000000 0006c0b3 00010001 00003840 0004d40d c646c0b3 001c0001 00003840
+     00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d
+     c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007.
+ +0.000188
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31478580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000
+     00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000
+     000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0
+     0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00
+     01000038 40001020 010db800 01000000 00000000 000001c0 12000200 01000038
+     40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000c 09707265
+     63697369 6f6ec0eb c0120002 00010000 38400009 06726164 697573c0 ebc01200
+     02000100 00384000 0d0a7465 6c656361 73746572 c0ebc114 00010001 00003840
+     00043e31 cc92c114 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c0fc 00010001 00003840 0004d40d c646c0fc
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c129 00010001
+     00003840 0004d40d c647c129 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000242
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31488580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000093
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     314a8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c0 000201c0
+     0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0
+     0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0
+     0c000100 01000038 400004cb 007102c0 12000200 01000038 40000d07 76616d70
+     69726502 6e73c012 c0120002 00010000 38400009 06726164 697573c0 a3c01200
+     02000100 00384000 0c097072 65636973 696f6ec0 a3c01200 02000100 00384000
+     0d0a7465 6c656361 73746572 c0a3c0b4 00010001 00003840 00043e31 cc92c0b4
+     001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c09b 00010001
+     00003840 00043e31 cc96c09b 001c0001 00003840 00102001 04701f09 1b980000
+     00000000 0006c0c9 00010001 00003840 0004d40d c646c0c9 001c0001 00003840
+     00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d
+     c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007.
+ +0.000176
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     314b8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000
+     00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000
+     000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0
+     0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00
+     01000038 40001020 010db800 01000000 00000000 000002c0 12000200 01000038
+     4000100a 74656c65 63617374 6572026e 73c012c0 12000200 01000038 40000a07
+     76616d70 697265c0 eec01200 02000100 00384000 09067261 64697573 c0eec012
+     00020001 00003840 000c0970 72656369 73696f6e c0eec115 00010001 00003840
+     00043e31 cc92c115 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0ff 00010001 00003840 00043e31 cc96c0ff 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0e3 00010001
+     00003840 0004d40d c647c0e3 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000241
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     314c8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469
+     7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275
+     00000038 40.
+ +0.000089
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     314e8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000056
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000019
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.981853
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000959
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     314f8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000072
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31508580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00460461 646472c0
+     0fc00c00 0f000100 00384000 06004501 61c00fc0 0c000f00 01000038 40000900
+     45046161 6161c00f c00c000f 00010000 3840000a 0045056d 61646472 c00fc00f
+     00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100
+     00384000 0a077661 6d706972 65c094c0 0f000200 01000038 40000906 72616469
+     7573c094 c00f0002 00010000 3840000d 0a74656c 65636173 746572c0 94c04f00
+     01000100 00384000 04c63364 10c06100 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c07600 01000100 00384000 04c00002 02c07600 01000100
+     00384000 04c63364 01c07600 01000100 00384000 04c63364 02c07600 01000100
+     00384000 04cb0071 01c07600 01000100 00384000 04cb0071 02c07600 01000100
+     00384000 04c00002 01.
+ +0.000160
+ sendto fd=6 addr=172.29.199.224:53
+     31770100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000087
+ sendto fd=6 addr=172.29.199.224:53
+     31780100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001.
+ sendto=46
+ +0.000045
+ sendto fd=6 addr=172.29.199.224:53
+     317a0100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001.
+ sendto=43
+ +0.000059
+ sendto fd=6 addr=172.29.199.224:53
+     317c0100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000060
+ sendto fd=6 addr=172.29.199.224:53
+     317e0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000069
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31528580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000057
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31538580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0
+     160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000
+     3840.
+ +0.000058
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000019
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.980388
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000215
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31548580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564
+     036f7267 02756b00 000f0001 c00c000f 00010000 38400006 00450161 c00fc00c
+     000f0001 00003840 00090045 04616161 61c00fc0 0c000f00 01000038 40000a00
+     45056d61 646472c0 0fc00c00 0f000100 00384000 09004604 61646472 c00fc00f
+     00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100
+     00384000 09067261 64697573 c094c00f 00020001 00003840 000d0a74 656c6563
+     61737465 72c094c0 0f000200 01000038 40000a07 76616d70 697265c0 94c03a00
+     01000100 00384000 04c63364 10c04c00 1c000100 00384000 1020010d b8000000
+     00000000 00000000 01c06100 01000100 00384000 04c63364 01c06100 01000100
+     00384000 04c63364 02c06100 01000100 00384000 04cb0071 01c06100 01000100
+     00384000 04cb0071 02c06100 01000100 00384000 04c00002 01c06100 01000100
+     00384000 04c00002 02.
+ +0.000173
+ sendto fd=6 addr=172.29.199.224:53
+     31800100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001.
+ sendto=43
+ +0.000068
+ sendto fd=6 addr=172.29.199.224:53
+     31820100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000059
+ sendto fd=6 addr=172.29.199.224:53
+     31840100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001.
+ sendto=47
+ +0.000067
+ sendto fd=6 addr=172.29.199.224:53
+     31860100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001.
+ sendto=46
+ +0.000062
+ sendto fd=6 addr=172.29.199.224:53
+     31870100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001.
+ sendto=46
+ +0.000044
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000015
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.989220
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000156
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31568580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975
+     73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500
+     00003840.
+ +0.000082
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000022
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.988960
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000271
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31588580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011
+     00020001 00003840 000f0970 72656369 73696f6e 026e73c0 11c01100 02000100
+     00384000 09067261 64697573 c054c011 00020001 00003840 000d0a74 656c6563
+     61737465 72c054c0 11000200 01000038 40000a07 76616d70 697265c0 54c06500
+     01000100 00384000 043e31cc 92c06500 1c000100 00384000 10200104 701f091b
+     98000000 00000000 02c09300 01000100 00384000 043e31cc 96c09300 1c000100
+     00384000 10200104 701f091b 98000000 00000000 06c04a00 01000100 00384000
+     04d40dc6 46c04a00 1c000100 00384000 1020010b a8000001 d9000000 00000000
+     06c07a00 01000100 00384000 04d40dc6 47c07a00 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 07.
+ +0.000285
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     315a8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000
+     00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000
+     000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0
+     0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00
+     01000038 40001020 010db800 03000000 00000000 000001c0 12000200 01000038
+     40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000d0a 74656c65
+     63617374 6572c0ea c0120002 00010000 3840000c 09707265 63697369 6f6ec0ea
+     c0120002 00010000 3840000a 0776616d 70697265 c0eac0e3 00010001 00003840
+     00043e31 cc92c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c12c 00010001 00003840 00043e31 cc96c12c 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c114 00010001 00003840 0004d40d c646c114
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0fb 00010001
+     00003840 0004d40d c647c0fb 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000369
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     315c8580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011
+     00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840
+     000c0970 72656369 73696f6e c051c011 00020001 00003840 000d0a74 656c6563
+     61737465 72c051c0 11000200 01000038 40000a07 76616d70 697265c0 51c04a00
+     01000100 00384000 043e31cc 92c04a00 1c000100 00384000 10200104 701f091b
+     98000000 00000000 02c09300 01000100 00384000 043e31cc 96c09300 1c000100
+     00384000 10200104 701f091b 98000000 00000000 06c06200 01000100 00384000
+     04d40dc6 46c06200 1c000100 00384000 1020010b a8000001 d9000000 00000000
+     06c07a00 01000100 00384000 04d40dc6 47c07a00 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 07.
+ +0.000309
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000020
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.988741
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000441
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     315d8580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000
+     00000000 00000000 0002c011 00020001 00003840 000f0970 72656369 73696f6e
+     026e73c0 11c01100 02000100 00384000 0a077661 6d706972 65c060c0 11000200
+     01000038 40000d0a 74656c65 63617374 6572c060 c0110002 00010000 38400009
+     06726164 697573c0 60c0a000 01000100 00384000 043e31cc 92c0a000 1c000100
+     00384000 10200104 701f091b 98000000 00000000 02c07100 01000100 00384000
+     043e31cc 96c07100 1c000100 00384000 10200104 701f091b 98000000 00000000
+     06c05600 01000100 00384000 04d40dc6 46c05600 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 06c08700 01000100 00384000 04d40dc6 47c08700
+     1c000100 00384000 1020010b a8000001 d9000000 00000000 07.
+ +0.000200
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     315f8580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015
+     0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038
+     40.
+ +0.000135
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31618580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975
+     73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500
+     00003840.
+ +0.000151
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31638580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011
+     00020001 00003840 000d0776 616d7069 7265026e 73c011c0 11000200 01000038
+     40000c09 70726563 6973696f 6ec052c0 11000200 01000038 40000906 72616469
+     7573c052 c0110002 00010000 3840000d 0a74656c 65636173 746572c0 52c07b00
+     01000100 00384000 043e31cc 92c07b00 1c000100 00384000 10200104 701f091b
+     98000000 00000000 02c04a00 01000100 00384000 043e31cc 96c04a00 1c000100
+     00384000 10200104 701f091b 98000000 00000000 06c06300 01000100 00384000
+     04d40dc6 46c06300 1c000100 00384000 1020010b a8000001 d9000000 00000000
+     06c09000 01000100 00384000 04d40dc6 47c09000 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 07.
+ +0.000277
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31658580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975
+     73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500
+     00003840.
+ +0.000135
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31678580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975
+     73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500
+     00003840.
+ +0.000049
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000099
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.990153
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000667
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31698580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011
+     00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840
+     000a0776 616d7069 7265c051 c0110002 00010000 3840000d 0a74656c 65636173
+     746572c0 51c01100 02000100 00384000 0c097072 65636973 696f6ec0 51c04a00
+     01000100 00384000 043e31cc 92c04a00 1c000100 00384000 10200104 701f091b
+     98000000 00000000 02c06200 01000100 00384000 043e31cc 96c06200 1c000100
+     00384000 10200104 701f091b 98000000 00000000 06c09100 01000100 00384000
+     04d40dc6 46c09100 1c000100 00384000 1020010b a8000001 d9000000 00000000
+     06c07800 01000100 00384000 04d40dc6 47c07800 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 07.
+ +0.000262
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     316b8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000
+     00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000
+     000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0
+     0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00
+     01000038 40001020 010db800 03000000 00000000 000002c0 12000200 01000038
+     40000f09 70726563 6973696f 6e026e73 c012c012 00020001 00003840 00090672
+     61646975 73c0edc0 12000200 01000038 40000d0a 74656c65 63617374 6572c0ed
+     c0120002 00010000 3840000a 0776616d 70697265 c0edc0fe 00010001 00003840
+     00043e31 cc92c0fe 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c12c 00010001 00003840 00043e31 cc96c12c 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c0e3 00010001 00003840 0004d40d c646c0e3
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c113 00010001
+     00003840 0004d40d c647c113 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000306
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     316d8580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000
+     00000000 00000000 0002c011 00020001 00003840 000f0970 72656369 73696f6e
+     026e73c0 11c01100 02000100 00384000 09067261 64697573 c060c011 00020001
+     00003840 000d0a74 656c6563 61737465 72c060c0 11000200 01000038 40000a07
+     76616d70 697265c0 60c07100 01000100 00384000 043e31cc 92c07100 1c000100
+     00384000 10200104 701f091b 98000000 00000000 02c09f00 01000100 00384000
+     043e31cc 96c09f00 1c000100 00384000 10200104 701f091b 98000000 00000000
+     06c05600 01000100 00384000 04d40dc6 46c05600 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 06c08600 01000100 00384000 04d40dc6 47c08600
+     1c000100 00384000 1020010b a8000001 d9000000 00000000 07.
+ +0.000302
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     316f8580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015
+     0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038
+     40.
+ +0.000145
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31718580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000
+     00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000
+     000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0
+     0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00
+     01000038 40001020 010db800 01000000 00000000 000001c0 12000200 01000038
+     40000d07 76616d70 69726502 6e73c012 c0120002 00010000 38400009 06726164
+     697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc012
+     00020001 00003840 000c0970 72656369 73696f6e c0ebc0fc 00010001 00003840
+     00043e31 cc92c0fc 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c111 00010001
+     00003840 0004d40d c647c111 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000327
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31738580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000
+     00000000 00000000 0002c011 00020001 00003840 000c0672 61646975 73026e73
+     c011c011 00020001 00003840 000c0970 72656369 73696f6e c05dc011 00020001
+     00003840 000a0776 616d7069 7265c05d c0110002 00010000 3840000d 0a74656c
+     65636173 746572c0 5dc05600 01000100 00384000 043e31cc 92c05600 1c000100
+     00384000 10200104 701f091b 98000000 00000000 02c08600 01000100 00384000
+     043e31cc 96c08600 1c000100 00384000 10200104 701f091b 98000000 00000000
+     06c06e00 01000100 00384000 04d40dc6 46c06e00 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 06c09c00 01000100 00384000 04d40dc6 47c09c00
+     1c000100 00384000 1020010b a8000001 d9000000 00000000 07.
+ +0.000280
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31758580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015
+     0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038
+     40.
+ +0.000135
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31778580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011
+     00020001 00003840 00100a74 656c6563 61737465 72026e73 c011c011 00020001
+     00003840 000c0970 72656369 73696f6e c055c011 00020001 00003840 000a0776
+     616d7069 7265c055 c0110002 00010000 38400009 06726164 697573c0 55c09400
+     01000100 00384000 043e31cc 92c09400 1c000100 00384000 10200104 701f091b
+     98000000 00000000 02c07e00 01000100 00384000 043e31cc 96c07e00 1c000100
+     00384000 10200104 701f091b 98000000 00000000 06c06600 01000100 00384000
+     04d40dc6 46c06600 1c000100 00384000 1020010b a8000001 d9000000 00000000
+     06c04a00 01000100 00384000 04d40dc6 47c04a00 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 07.
+ +0.000261
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31788580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000
+     00000000 00000000 0002c011 00020001 00003840 00100a74 656c6563 61737465
+     72026e73 c011c011 00020001 00003840 000a0776 616d7069 7265c061 c0110002
+     00010000 3840000c 09707265 63697369 6f6ec061 c0110002 00010000 38400009
+     06726164 697573c0 61c0a000 01000100 00384000 043e31cc 92c0a000 1c000100
+     00384000 10200104 701f091b 98000000 00000000 02c07200 01000100 00384000
+     043e31cc 96c07200 1c000100 00384000 10200104 701f091b 98000000 00000000
+     06c08800 01000100 00384000 04d40dc6 46c08800 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 06c05600 01000100 00384000 04d40dc6 47c05600
+     1c000100 00384000 1020010b a8000001 d9000000 00000000 07.
+ +0.000272
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     317a8580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015
+     0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038
+     40.
+ +0.000049
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     317c8580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975
+     73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500
+     00003840.
+ +0.000123
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     317e8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000
+     00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000
+     000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0
+     0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00
+     01000038 40001020 010db800 01000000 00000000 000002c0 12000200 01000038
+     40000f09 70726563 6973696f 6e026e73 c012c012 00020001 00003840 000a0776
+     616d7069 7265c0ed c0120002 00010000 3840000d 0a74656c 65636173 746572c0
+     edc01200 02000100 00384000 09067261 64697573 c0edc12d 00010001 00003840
+     00043e31 cc92c12d 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0fe 00010001 00003840 00043e31 cc96c0fe 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c0e3 00010001 00003840 0004d40d c646c0e3
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c114 00010001
+     00003840 0004d40d c647c114 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000294
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31808580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403
+     6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015
+     0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038
+     40.
+ +0.000075
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31828580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975
+     73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500
+     00003840.
+ +0.000041
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000026
+ select max=7 rfds=[6] wfds=[] efds=[] to=1.992946
+ select=1 rfds=[6] wfds=[] efds=[]
+ +0.000486
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31848580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72
+     74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800
+     02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000
+     00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000
+     000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0
+     0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00
+     01000038 40001020 010db800 02000000 00000000 000001c0 12000200 01000038
+     40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000c 09707265
+     63697369 6f6ec0eb c0120002 00010000 38400009 06726164 697573c0 ebc01200
+     02000100 00384000 0d0a7465 6c656361 73746572 c0ebc114 00010001 00003840
+     00043e31 cc92c114 001c0001 00003840 00102001 04701f09 1b980000 00000000
+     0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001
+     04701f09 1b980000 00000000 0006c0fc 00010001 00003840 0004d40d c646c0fc
+     001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c129 00010001
+     00003840 0004d40d c647c129 001c0001 00003840 00102001 0ba80000 01d90000
+     00000000 0007.
+ +0.000144
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31868580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011
+     00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840
+     000d0a74 656c6563 61737465 72c051c0 11000200 01000038 40000c09 70726563
+     6973696f 6ec051c0 11000200 01000038 40000a07 76616d70 697265c0 51c04a00
+     01000100 00384000 043e31cc 92c04a00 1c000100 00384000 10200104 701f091b
+     98000000 00000000 02c09300 01000100 00384000 043e31cc 96c09300 1c000100
+     00384000 10200104 701f091b 98000000 00000000 06c07b00 01000100 00384000
+     04d40dc6 46c07b00 1c000100 00384000 1020010b a8000001 d9000000 00000000
+     06c06200 01000100 00384000 04d40dc6 47c06200 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 07.
+ +0.000128
+ recvfrom fd=6 buflen=512
+ recvfrom=OK addr=172.29.199.224:53
+     31878580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274
+     6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000
+     00000000 00000000 0002c011 00020001 00003840 00100a74 656c6563 61737465
+     72026e73 c011c011 00020001 00003840 00090672 61646975 73c061c0 11000200
+     01000038 40000a07 76616d70 697265c0 61c01100 02000100 00384000 0c097072
+     65636973 696f6ec0 61c07200 01000100 00384000 043e31cc 92c07200 1c000100
+     00384000 10200104 701f091b 98000000 00000000 02c08700 01000100 00384000
+     043e31cc 96c08700 1c000100 00384000 10200104 701f091b 98000000 00000000
+     06c09d00 01000100 00384000 04d40dc6 46c09d00 1c000100 00384000 1020010b
+     a8000001 d9000000 00000000 06c05600 01000100 00384000 04d40dc6 47c05600
+     1c000100 00384000 1020010b a8000001 d9000000 00000000 07.
+ +0.000110
+ recvfrom fd=6 buflen=512
+ recvfrom=EAGAIN
+ +0.000024
+ close fd=6
+ close=OK
+ +0.000143
index a34d2adc3814f0648e7fcbe13f532b19ae581c09..bd1f8cf83350f0b3d31d0d0a2568d3f76f1a686b 100644 (file)
@@ -1,4 +1,4 @@
-./adnshost default -f
+./adnshost default -f -A4
 
  start 969124425.922896
  socket domain=PF_INET type=SOCK_DGRAM
index 379119ae28686785af346a1244f3f50e300e2cb4..a2facecb0227bd262b472f7b742d8833a834d239 100644 (file)
@@ -1,4 +1,4 @@
-./adnshost default -f
+./adnshost default -f -A4
 
  start 969124594.885114
  socket domain=PF_INET type=SOCK_DGRAM
index 36537db5b3d55b98333529df9c9d59b4f35aaf94..54fe6672214f4cae5abe7eaa28b98decb9bb83a3 100644 (file)
@@ -1,4 +1,4 @@
-./adnshost default
+./adnshost default -A4
 chiark.greenend.org.uk
  start 969122933.609498
  socket domain=PF_INET type=SOCK_DGRAM
index 7b2c4f69db3dcf499d38159bbbaf0d86aeb41ccc..625ea18780e064011117bbe2e70b045cb70b427b 100644 (file)
@@ -1,4 +1,4 @@
-./adnshost default -f
+./adnshost default -f -A4
 
  start 969123801.904882
  socket domain=PF_INET type=SOCK_DGRAM
index 326814373cc2f8c7bbc50bd85d3d4e8fac5c97f7..0322e147f4caf5e146674f80af2b314c9eeb1d3c 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 :15,16842767 broken-mail.test.iwj.relativity.greenend.org.uk. 256/broken-mail.test.iwj.relativity.greenend.org.uk. 0x104/broken-mail.test.iwj.relativity.greenend.org.uk.
  start 934726868.117908
  socket domain=PF_INET type=SOCK_DGRAM
index 67fb9aa95dbdafdd9e477b9663b9ce9eeb3743f1..b33043f1b5f7729b5f295fda232846e23a0a2b8b 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 292/170.99.219.194.in-addr.arpa
  start 933809668.543946
  socket domain=PF_INET type=SOCK_DGRAM
index f94a7b20eaeb7153ea91ccd10c2d53858d1b565e..c58be33fd8cee6c87519cea01757b1b0ecdc0a65 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 292/170.99.219.194.in-addr.arpa
  start 933809632.795174
  socket domain=PF_INET type=SOCK_DGRAM
index 264fa832e2976bd4263fdf63fde16b4e8bf7d43d..79e2ce4e11af674da52b2eaa8de8c0bbf09389a3 100644 (file)
@@ -1,4 +1,4 @@
-adnstest ncipher
+adnstest ncipher -0x400
 254.0.99.203.in-addr.arpa
  start 933269010.293417
  socket domain=PF_INET type=SOCK_DGRAM
index 90512d138d770871b409e8ac7e3a639be4ac1511..4acb741ec15d26f795b667ce2859033e721d9bc0 100644 (file)
@@ -1,4 +1,4 @@
-adnstest manyptrwrong
+adnstest manyptrwrong -0x400
 292/254.0.99.203.in-addr.arpa
  start 933286859.476326
  socket domain=PF_INET type=SOCK_DGRAM
index 07a1cc5f2c4df1e0228eabab381e7cf6fb842b4b..df52b44e7bfd1a7ac5d598dde22f93600baeabd1 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 292/254.0.99.203.in-addr.arpa
  start 933289772.727140
  socket domain=PF_INET type=SOCK_DGRAM
index 1c0d4256ab9ee5634ab7040d5b0e55a1d7ef5d99..0d5f3dd99237b53bb1e32ad24fdd7e57ce222d44 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 292/254.0.99.203.in-addr.arpa
  start 933286845.072950
  socket domain=PF_INET type=SOCK_DGRAM
index acc867eb7f0dccffc8f9c4f7122c1305726772c6..3365feca87a5fcc58d243daafd27e4510ce8e0c9 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default -0x16
+adnstest default -0x416
 4.204.50.158.in-addr.arpa
  start 939764098.821612
  socket domain=PF_INET type=SOCK_DGRAM
index a181503c64d8095f871611bac0c2a958932bd0b3..a8424ebb6099d616fbaa63df4c7da51fe4d0b121 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default -0x16
+adnstest default -0x416
 4.204.50.158.in-addr.arpa
  start 939764277.018636
  socket domain=PF_INET type=SOCK_DGRAM
index df9816fab09e16569ad822c52704359516abf9aa..0d3ce7ee73d57f70faa5a78354313aa378a00578 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default -0x16
+adnstest default -0x416
 2.203.156.195.in-addr.arpa1
  start 939764258.086555
  socket domain=PF_INET type=SOCK_DGRAM
index c43f4d9bd3e60884fbb07a198166b6db910bb130..ed310bdde94bbe7cdd6dba0455dea1dcb839733c 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 4/chiark.greenend.org.uk
  start 933206012.504679
  socket domain=PF_INET type=SOCK_DGRAM
index 7ae7a7738f19f31285a98fc4f251808c22dfb1d0..c001282229a59c2a2fbdebd7c132cdf808616144 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default
+adnstest default -0x400
 . 1/.
  start 931992019.753022
  socket domain=PF_INET type=SOCK_DGRAM
index 41ce7dbf45999495bb3eb490f446ad41599cd996..184c83f91faa22341e90b0138e7d544a979b4328 100644 (file)
@@ -1,4 +1,4 @@
-adnstest default -,s
+adnstest default -0x400,s
 . 1/.
  start 924364450.165424
  socket domain=PF_INET type=SOCK_DGRAM
index 1c2499bc1ecf2e6bf8c68ebda77f3901b250f0c1..1bb2de5f11972b67abcc22da7a114ad074f6e960 100644 (file)
@@ -1,4 +1,4 @@
-./adnshost default
+./adnshost default -A4
 -t srv _srv._tcp.test.iwj.relativity.greenend.org.uk. _jabber._tcp.jabber.org _sip._udp.voip.net.cam.ac.uk.
  start 1144348939.753711
  socket domain=PF_INET type=SOCK_DGRAM
index 53a0d8bc7a55c7e3385634f22e85e5878b8cbb7d..c0e014038fde4292d02cf52fde1fb97ebd8f4888 100644 (file)
@@ -1,4 +1,4 @@
-adnstest anarres
+adnstest anarres -0x400
 2/test.iwj.relativity.greenend.org.uk.
  start 962142174.403028
  socket domain=PF_INET type=SOCK_DGRAM
index 9a130bb160debc220ffbe6ba247e8521187d39fc..e211840323d0a966f7127f4263d402d4459a006e 100644 (file)
@@ -1,4 +1,4 @@
-adnstest anarres
+adnstest anarres -0x400
 2/test.iwj.relativity.greenend.org.uk.
  start 962142246.340485
  socket domain=PF_INET type=SOCK_DGRAM
index ae497aefa4363bacd7c074fa18b197059f35a482..ecc388f9c5b60c1cd871433a67bc1e9f4773064a 100644 (file)
@@ -1,4 +1,4 @@
-adnstest anarres -0x300
+adnstest anarres -0x700
 2/test.iwj.relativity.greenend.org.uk.
  start 962143388.709150
  socket domain=PF_INET type=SOCK_DGRAM
index 6ccc54ead85b74159cfeeb01fc5afc7b1da3fe2c..5453b227594658b7eb3cb417bce7fe6fb2e0a2d2 100644 (file)
@@ -1,4 +1,4 @@
-adnstest anarres -0x300
+adnstest anarres -0x700
 2/test.iwj.relativity.greenend.org.uk. 2/test.iwj.relativity.greenend.org.uk. 2/test.iwj.relativity.greenend.org.uk.
  start 962143438.172669
  socket domain=PF_INET type=SOCK_DGRAM
index 8561ab40641cc7ba2e2f13676427a7d5652f5752..29fe47b8850dd326a29eee9b5b8c6caac0067832 100644 (file)
@@ -1,4 +1,4 @@
-./adnstest distorted-v6
+./adnstest distorted-v6 -0x400
 www.distorted.org.uk
  start 1402047441.083542
  socket domain=PF_INET6 type=SOCK_DGRAM
index 7d78bf7ed7dded496ed5e8862bd5569bd7589a01..c75dbb6014b168bf5fd842fbdbf6ca220356922f 100644 (file)
 extern "C" { /* I really dislike this - iwj. */
 #endif
 
+/* Whether to support address families other than IPv4 in responses which use
+ * the `adns_rr_addr' structure.  This is a source-compatibility issue: old
+ * clients may not expect to find address families other than AF_INET in
+ * their query results.  There's a separate binary compatibility issue to do
+ * with the size of the `adns_rr_addr' structure, but we'll assume you can
+ * cope with that because you have this header file.  Define
+ * `ADNS_FEATURE_IPV4ONLY' if you only want to see AF_INET addresses by
+ * default, or `ADNS_FEATURE_MANYAF' to allow multiple address families; the
+ * default is currently to stick with AF_INET only, but this is likely to
+ * change in a later release of ADNS.  Note that any adns_qf_want_... flags
+ * in your query are observed: this setting affects only the default address
+ * families.
+ */
+#if !defined(ADNS_FEATURE_IPV4ONLY) && !defined(ADNS_FEATURE_MANYAF)
+#  define ADNS_FEATURE_IPV4ONLY
+#elif defined(ADNS_FEATURE_IPV4ONLY) && defined(ADNS_FEATURE_MANYAF)
+#  error "Feature flags ADNS_FEATURE_IPV4ONLY and ..._MANYAF are incompatible"
+#endif
+
 /* All struct in_addr anywhere in adns are in NETWORK byte order. */
 
 typedef struct adns__state *adns_state;
@@ -88,7 +107,17 @@ typedef enum { /* In general, or together the desired flags: */
  adns_if_eintr=       0x0020,/* allow _wait and _synchronous to return EINTR */
  adns_if_nosigpipe=   0x0040,/* applic has SIGPIPE ignored, do not protect */
  adns_if_checkc_entex=0x0100,/* consistency checks on entry/exit to adns fns */
- adns_if_checkc_freq= 0x0300 /* consistency checks very frequently (slow!) */
+ adns_if_checkc_freq= 0x0300,/* consistency checks very frequently (slow!) */
+
+ adns_if_permit_ipv4= 0x0400,/* allow _addr queries to return IPv4 addresses  */
+ adns_if_permit_ipv6= 0x0800,/* allow _addr queries to return IPv6 addresses */
+ adns_if_afmask=      0x0c00
+   /* These are policy flags, and overridden by the adns_af:... option in
+    * resolv.conf.  If the adns_qf_want_... query flags are incompatible with
+    * these settings (in the sense that no address families are permitted at
+    * all) then the query flags take precedence; otherwise only records which
+    * satisfy all of the stated requirements are allowed.
+    */
 } adns_initflags;
 
 typedef enum { /* In general, or together the desired flags: */
@@ -102,10 +131,21 @@ typedef enum { /* In general, or together the desired flags: */
  adns_qf_quotefail_cname=0x00000080,/* refuse if quote-req chars in CNAME we go via */
  adns_qf_cname_loose=    0x00000100,/* allow refs to CNAMEs - without, get _s_cname */
  adns_qf_cname_forbid=   0x00000200,/* don't follow CNAMEs, instead give _s_cname */
+
+ adns_qf_want_ipv4=     0x00000400,/* try to return IPv4 addresses */
+ adns_qf_want_ipv6=     0x00000800,/* try to return IPv6 addresses */
+ adns_qf_want_allaf=    0x00000c00,/* all the above flag bits */
+   /* Without any of the _qf_want_... flags, _qtf_deref queries try to return
+    * all address families permitted by _if_permit_... (as overridden by the
+    * `adns_af:...'  configuration option).  Set flags to restrict the
+    * returned address families to the ones selected.
+    */
  adns_qf_ipv6_mapv4=    0x00001000,/*  ... return IPv4 addresses as v6-mapped */
+
  adns_qf_addrlit_scope_forbid=0x00002000,/* forbid %<scope> in IPv6 literals */
  adns_qf_addrlit_scope_numeric=0x00004000,/* %<scope> may only be numeric */
  adns_qf_addrlit_ipv4_quadonly=0x00008000,/* reject non-dotted-quad ipv4 */
+
  adns__qf_internalmask=  0x0ff00000
 } adns_queryflags;
 
@@ -116,8 +156,12 @@ typedef enum {
  adns__qtf_mail822=  0x20000,/* return mailboxes in RFC822 rcpt field fmt   */
 
  adns__qtf_bigaddr=0x1000000,/* use the new larger sockaddr union */
+ adns__qtf_manyaf= 0x2000000,/* permitted to return multiple address families */
 
  adns__qtf_deref=    adns__qtf_deref_bit|adns__qtf_bigaddr
+#ifdef ADNS_FEATURE_MANYAF
+                    |adns__qtf_manyaf
+#endif
                            ,/* dereference domains; perhaps get extra data */
 
  adns_r_unknown=     0x40000,
@@ -534,6 +578,15 @@ int adns_init_logfn(adns_state *newstate_r, adns_initflags flags,
  *   Changes the consistency checking frequency; this overrides the
  *   setting of adns_if_check_entex, adns_if_check_freq, or neither,
  *   in the flags passed to adns_init.
+ *
+ *  adns_af:{ipv4,ipv6},...  adns_af:any
+ *   Determines which address families ADNS looks up (either as an
+ *   adns_r_addr query, or when dereferencing an answer yielding hostnames
+ *   (e.g., adns_r_mx).  The argument is a comma-separated list: only the
+ *   address families listed will be looked up.  The default is `any'.
+ *   Lookups occur (logically) concurrently; use the `sortlist' directive to
+ *   control the relative order of addresses in answers.  This option
+ *   overrides the corresponding init flags (covered by adns_if_afmask).
  * 
  * There are a number of environment variables which can modify the
  * behaviour of adns.  They take effect only if adns_init is used, and
index 748f2031976d7d0c06bd1f2803cedac5048e6ce8..3ea8a934426bb3e576944a169f981c88eb5854e8 100644 (file)
@@ -42,6 +42,7 @@ typedef unsigned char byte;
 
 #include <sys/time.h>
 
+#define ADNS_FEATURE_MANYAF
 #include "adns.h"
 #include "dlist.h"
 
index f49e7225eb83209435691e7327e26227d65d4123..0030dfbe2fd4c19311b15326a0acc7e5057a8baa 100644 (file)
@@ -264,7 +264,7 @@ static void ccf_options(adns_state ads, const char *fn,
   const char *word;
   char *ep;
   unsigned long v;
-  int l;
+  int i,l;
 
   if (!buf) return;
 
@@ -298,6 +298,26 @@ static void ccf_options(adns_state ads, const char *fn,
       }
       continue;
     }
+    if (l>=8 && !memcmp(word,"adns_af:",8)) {
+      word += 8;
+      ads->iflags &= ~adns_if_afmask;
+      if (strcmp(word,"any")) for (;;) {
+       i= strcspn(word,",");
+       if (i>=4 && !memcmp(word,"ipv4",4))
+         ads->iflags |= adns_if_permit_ipv4;
+       else if (i>=4 && !memcmp(word,"ipv6",4))
+         ads->iflags |= adns_if_permit_ipv6;
+       else {
+         configparseerr(ads,fn,lno, "option adns_af has bad value `%.*s' "
+                        "(must be `any' or list {`ipv4',`ipv6'},...)",
+                        i, word);
+         break;
+       }
+       if (!word[i]) break;
+       word= word + i + 1;
+      }
+      continue;
+    }
     adns__diag(ads,-1,0,"%s:%d: unknown option `%.*s'", fn,lno, l,word);
   }
 }
index 333cc0bb6f93e55adc235b14df5661f06649549c..048e4ddb39584246881354ae9b194bfc112fd9ec 100644 (file)
@@ -519,7 +519,26 @@ static unsigned addr_rrtypes(adns_state ads, adns_rrtype type,
   /* Return a mask of addr_rf_... flags indicating which address families are
    * wanted, given a query type and flags.
    */
-  return addr_rf_a;
+
+  adns_queryflags permitaf= 0;
+  unsigned want= 0;
+
+  if (!(type & adns__qtf_bigaddr))
+    qf= (qf & ~adns_qf_want_allaf) | adns_qf_want_ipv4;
+  else {
+    if (!(qf & adns_qf_want_allaf)) {
+      qf |= (type & adns__qtf_manyaf) ?
+       adns_qf_want_allaf : adns_qf_want_ipv4;
+    }
+    if (ads->iflags & adns_if_permit_ipv4) permitaf |= adns_qf_want_ipv4;
+    if (ads->iflags & adns_if_permit_ipv6) permitaf |= adns_qf_want_ipv6;
+    if (qf & permitaf) qf &= permitaf | ~adns_qf_want_allaf;
+  }
+
+  if (qf & adns_qf_want_ipv4) want |= addr_rf_a;
+  if (qf & adns_qf_want_ipv6) want |= addr_rf_aaaa;
+
+  return want;
 }
 
 static void icb_addr(adns_query parent, adns_query child);
@@ -931,7 +950,8 @@ static adns_status pap_hostaddr(const parseinfo *pai, int *cbyte_io,
   ctx.callback= icb_hostaddr;
   ctx.pinfo.hostaddr= rrp;
   
-  nflags= adns_qf_quoteok_query | (pai->qu->flags & adns_qf_ipv6_mapv4);
+  nflags= adns_qf_quoteok_query | (pai->qu->flags & (adns_qf_want_allaf |
+                                                    adns_qf_ipv6_mapv4));
   if (!(pai->qu->flags & adns_qf_cname_loose)) nflags |= adns_qf_cname_forbid;
   
   st= addr_submit(pai->qu, &nqu, &pai->qu->vb, id, want,