chiark / gitweb /
adns_rr_info on _r_mx etc. shows status type abbrev and status number.
authorian <ian>
Wed, 13 Oct 1999 00:23:01 +0000 (00:23 +0000)
committerian <ian>
Wed, 13 Oct 1999 00:23:01 +0000 (00:23 +0000)
changelog
regress/case-abbrev.out
regress/case-brokenmail.out
regress/case-owner.out
regress/case-rootqueryall-as.out
regress/case-rootqueryall.out
src/adns.h
src/general.c
src/types.c

index 71d75b4f19f0b78fa55ae6bba6e4293bb04caa5b..74ea49067716bcc210097aa6027ea6d671f23af4 100644 (file)
--- a/changelog
+++ b/changelog
@@ -5,13 +5,15 @@ adns (0.5) unstable; urgency=medium
     Thanks to Tony Finch for the program and the performance figure.
   * New internal consistency checking with assert if right options set.
   * New adns_wait_poll function like adns_wait but uses poll, not select.
-  * New adnshost utility - currently only a usage message :-).
+  * New adnshost utility - very alpha.
+  * New adns_errtypeabbrev function.
 
   Incompatible changes:
   * RRs with mailboxes never rejected due to strange chars if _raw.
   * Lack of a mailbox produces `.' not `<>'.
   * Better usage messages (and no default query domain) for adnstest.
   * Return EAGAIN from _check instead of EWOULDBLOCK.
+  * adns_rr_info on _r_mx etc. shows status type abbrev and status number.
   
   Bugfixes:
   * Do not invoke __autosys indirectly from __procdgram (result: coredump
index aa96308206f197bf2eb0d0adb9f645681145f48f..1f786effa39350e3c8e3302e88e8dd71ae6ad962 100644 (file)
@@ -29,11 +29,11 @@ greenend.org.uk flags 0 type TXT(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$
 greenend.org.uk flags 0 type RP(raw) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 greenend.org.uk flags 0 type A(addr) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 greenend.org.uk flags 0 type NS(+addr) ownflags=a: ok; nrrs=2; cname=$; owner=$; ttl=86400
- ns0.relativity.greenend.org.uk ok "OK" ( INET 172.18.45.6 )
- ns1.relativity.greenend.org.uk ok "OK" ( INET 172.18.45.65 )
+ ns0.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 )
+ ns1.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.65 )
 greenend.org.uk flags 0 type PTR(checked) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 greenend.org.uk flags 0 type MX(+addr) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400
- 10 chiark.greenend.org.uk ok "OK" ( INET 195.224.76.132 )
+ 10 chiark.greenend.org.uk ok 0 ok "OK" ( INET 195.224.76.132 )
 greenend.org.uk flags 0 type SOA(822) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400
  ns.chiark.greenend.org.uk hostmaster@greenend.org.uk 1999061300 28800 7200 604800 86400
 greenend.org.uk flags 0 type RP(822) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
index f2b7d19e9c1dd89526a216f367a57c5a3f046224..14757ba37e3f2332c22a12d96fd5ed4d42412992 100644 (file)
@@ -21,18 +21,18 @@ broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type MX(raw): OK; nrr
  30 172.18.45.36
  40 cname-ptr.test.iwj.relativity.greenend.org.uk
 broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=30
- 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
- 20 host.broken-delg.test.iwj.relativity.greenend.org.uk timeout "DNS query timed out" ?
- 30 172.18.45.36 nxdomain "No such domain" ( )
- 40 cname-ptr.test.iwj.relativity.greenend.org.uk prohibitedcname "DNS alias found where canonical name wanted" ( )
+ 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
+ 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ?
+ 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( )
+ 40 cname-ptr.test.iwj.relativity.greenend.org.uk misconfig 101 prohibitedcname "DNS alias found where canonical name wanted" ( )
 broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=30
- 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
- 20 host.broken-delg.test.iwj.relativity.greenend.org.uk timeout "DNS query timed out" ?
- 30 172.18.45.36 nxdomain "No such domain" ( )
- 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok "OK" ( INET 172.18.45.37 )
+ 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
+ 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ?
+ 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( )
+ 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.37 )
 broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type MX(+addr): OK; nrrs=4; cname=$; owner=broken-mail.test.iwj.relativity.greenend.org.uk; ttl=30
- 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
- 20 host.broken-delg.test.iwj.relativity.greenend.org.uk timeout "DNS query timed out" ?
- 30 172.18.45.36 nxdomain "No such domain" ( )
- 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok "OK" ( INET 172.18.45.37 )
+ 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
+ 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ?
+ 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( )
+ 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.37 )
 rc=0
index 4ebf6ff6bbf2aa8dc01e0c6c34ea9e6bb1ab9e08..9cb3358b2514975857e7fad07455dd0e7bf3c83d 100644 (file)
@@ -30,7 +30,7 @@ chiark.greenend.org.uk flags 4 type A(addr): OK; nrrs=1; cname=$; owner=chiark.g
 chiark.greenend.org.uk flags 4 type NS(+addr): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400
 chiark.greenend.org.uk flags 4 type PTR(checked): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400
 chiark.greenend.org.uk flags 4 type MX(+addr): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400
- 5 permutation-city.greenend.org.uk ok "OK" ( INET 195.224.76.134 )
+ 5 permutation-city.greenend.org.uk ok 0 ok "OK" ( INET 195.224.76.134 )
 chiark.greenend.org.uk flags 4 type SOA(822): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400
 chiark.greenend.org.uk flags 4 type RP(822): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400
 rc=0
index d195c5427370f7dd2082e4850321025ae8bc7a88..dcfbc8e271d4e0e6491e2a767618b6540e7f9be1 100644 (file)
@@ -53,19 +53,19 @@ adns debug: using nameserver 172.18.45.6
 . flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 0 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=518399
- I.ROOT-SERVERS.NET ok "OK" ( INET 192.36.148.17 )
- F.ROOT-SERVERS.NET ok "OK" ( INET 192.5.5.241 )
- G.ROOT-SERVERS.NET ok "OK" ( INET 192.112.36.4 )
- J.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.10 )
- K.ROOT-SERVERS.NET ok "OK" ( INET 193.0.14.129 )
- L.ROOT-SERVERS.NET ok "OK" ( INET 198.32.64.12 )
- M.ROOT-SERVERS.NET ok "OK" ( INET 202.12.27.33 )
- A.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.4 )
- H.ROOT-SERVERS.NET ok "OK" ( INET 128.63.2.53 )
- B.ROOT-SERVERS.NET ok "OK" ( INET 128.9.0.107 )
- C.ROOT-SERVERS.NET ok "OK" ( INET 192.33.4.12 )
- D.ROOT-SERVERS.NET ok "OK" ( INET 128.8.10.90 )
- E.ROOT-SERVERS.NET ok "OK" ( INET 192.203.230.10 )
+ I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 )
+ F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 )
+ G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 )
+ J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 )
+ K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 )
+ L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 )
+ M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 )
+ A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 )
+ H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 )
+ B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 )
+ C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 )
+ D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 )
+ E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 )
 . flags 0 type PTR(checked): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 0 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=77975
@@ -95,19 +95,19 @@ adns debug: using nameserver 172.18.45.6
 . flags 1 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 1 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 1 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=518399
- G.ROOT-SERVERS.NET ok "OK" ( INET 192.112.36.4 )
- J.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.10 )
- K.ROOT-SERVERS.NET ok "OK" ( INET 193.0.14.129 )
- L.ROOT-SERVERS.NET ok "OK" ( INET 198.32.64.12 )
- M.ROOT-SERVERS.NET ok "OK" ( INET 202.12.27.33 )
- A.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.4 )
- H.ROOT-SERVERS.NET ok "OK" ( INET 128.63.2.53 )
- B.ROOT-SERVERS.NET ok "OK" ( INET 128.9.0.107 )
- C.ROOT-SERVERS.NET ok "OK" ( INET 192.33.4.12 )
- D.ROOT-SERVERS.NET ok "OK" ( INET 128.8.10.90 )
- E.ROOT-SERVERS.NET ok "OK" ( INET 192.203.230.10 )
- I.ROOT-SERVERS.NET ok "OK" ( INET 192.36.148.17 )
- F.ROOT-SERVERS.NET ok "OK" ( INET 192.5.5.241 )
+ G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 )
+ J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 )
+ K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 )
+ L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 )
+ M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 )
+ A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 )
+ H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 )
+ B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 )
+ C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 )
+ D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 )
+ E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 )
+ I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 )
+ F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 )
 . flags 1 type PTR(checked): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 1 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 1 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=70372
index fea6831a215048f5a630bc9ff3af2305d27dab6b..fed0a882bb89b4fc16cd93c0a79ab1052a662827 100644 (file)
@@ -58,19 +58,19 @@ adns debug: reply not found, id 312e, query owner  (NS=172.18.45.6)
 . flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 . flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 0 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=305624
- I.ROOT-SERVERS.NET ok "OK" ( INET 192.36.148.17 )
- F.ROOT-SERVERS.NET ok "OK" ( INET 192.5.5.241 )
- G.ROOT-SERVERS.NET ok "OK" ( INET 192.112.36.4 )
- J.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.10 )
- K.ROOT-SERVERS.NET ok "OK" ( INET 193.0.14.129 )
- L.ROOT-SERVERS.NET ok "OK" ( INET 198.32.64.12 )
- M.ROOT-SERVERS.NET ok "OK" ( INET 202.12.27.33 )
- A.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.4 )
- H.ROOT-SERVERS.NET ok "OK" ( INET 128.63.2.53 )
- B.ROOT-SERVERS.NET ok "OK" ( INET 128.9.0.107 )
- C.ROOT-SERVERS.NET ok "OK" ( INET 192.33.4.12 )
- D.ROOT-SERVERS.NET ok "OK" ( INET 128.8.10.90 )
- E.ROOT-SERVERS.NET ok "OK" ( INET 192.203.230.10 )
+ I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 )
+ F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 )
+ G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 )
+ J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 )
+ K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 )
+ L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 )
+ M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 )
+ A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 )
+ H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 )
+ B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 )
+ C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 )
+ D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 )
+ E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 )
 . flags 0 type PTR(checked): No such data; nrrs=0; cname=$; owner=$; ttl=599
 . flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 . flags 0 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=51616
@@ -106,19 +106,19 @@ adns debug: reply not found, id 3139, query owner  (NS=172.18.45.6)
 . flags 1 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86399
 . flags 1 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=598
 . flags 1 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=305623
- G.ROOT-SERVERS.NET ok "OK" ( INET 192.112.36.4 )
- J.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.10 )
- K.ROOT-SERVERS.NET ok "OK" ( INET 193.0.14.129 )
- L.ROOT-SERVERS.NET ok "OK" ( INET 198.32.64.12 )
- M.ROOT-SERVERS.NET ok "OK" ( INET 202.12.27.33 )
- A.ROOT-SERVERS.NET ok "OK" ( INET 198.41.0.4 )
- H.ROOT-SERVERS.NET ok "OK" ( INET 128.63.2.53 )
- B.ROOT-SERVERS.NET ok "OK" ( INET 128.9.0.107 )
- C.ROOT-SERVERS.NET ok "OK" ( INET 192.33.4.12 )
- D.ROOT-SERVERS.NET ok "OK" ( INET 128.8.10.90 )
- E.ROOT-SERVERS.NET ok "OK" ( INET 192.203.230.10 )
- I.ROOT-SERVERS.NET ok "OK" ( INET 192.36.148.17 )
- F.ROOT-SERVERS.NET ok "OK" ( INET 192.5.5.241 )
+ G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 )
+ J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 )
+ K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 )
+ L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 )
+ M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 )
+ A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 )
+ H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 )
+ B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 )
+ C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 )
+ D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 )
+ E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 )
+ I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 )
+ F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 )
 . flags 1 type PTR(checked): No such data; nrrs=0; cname=$; owner=$; ttl=598
 . flags 1 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=598
 . flags 1 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=46580
index fa9b6ca560d9fde9eb86d6355503d5f8e7249c14..cb2d671ccaabfc7d7a823510d7ede186143f3292 100644 (file)
@@ -798,9 +798,12 @@ adns_status adns_rr_info(adns_rrtype type,
 
 const char *adns_strerror(adns_status st);
 const char *adns_errabbrev(adns_status st);
+const char *adns_errtypeabbrev(adns_status st);
 /* Like strerror but for adns_status values.  adns_errabbrev returns
  * the abbreviation of the error - eg, for adns_s_timeout it returns
- * "timeout".  You MUST NOT call these functions with status values
+ * "timeout".  adns_errtypeabbrev returns the abbreviation of the
+ * error class: ie, for values up to adns_s_max_XXX it will return the
+ * string XXX.  You MUST NOT call these functions with status values
  * not returned by the same adns library.
  */
 
index 5ebdd6ad9c935dedac15285e0137dfdf4442f208..ae7cac0f2b06910c7ece07346208e42788a28e21 100644 (file)
@@ -204,6 +204,7 @@ adns_status adns_rr_info(adns_rrtype type,
   return st;
 }
 
+
 #define SINFO(n,s) { adns_s_##n, #n, s }
 
 static const struct sinfo {
@@ -240,7 +241,7 @@ static const struct sinfo {
   SINFO(  querydomaintoolong,  "Domain name is too long"                       ),
 
   SINFO(  nxdomain,            "No such domain"                                ),
-  SINFO(  nodata,              "No such data"                                  ),
+  SINFO(  nodata,              "No such data"                                  )
 };
 
 static int si_compar(const void *key, const void *elem) {
@@ -268,6 +269,43 @@ const char *adns_errabbrev(adns_status st) {
   return si->abbrev;
 }
 
+
+#define STINFO(max) { adns_s_max_##max, #max }
+
+static const struct stinfo {
+  adns_status stmax;
+  const char *abbrev;
+} stinfos[]= {
+  { adns_s_ok, "ok" },
+  STINFO(  localfail   ),
+  STINFO(  remotefail  ),
+  STINFO(  tempfail    ),
+  STINFO(  misconfig   ),
+  STINFO(  misquery    ),
+  STINFO(  permfail    )
+};
+
+static int sti_compar(const void *key, const void *elem) {
+  const adns_status *st= key;
+  const struct stinfo *sti= elem;
+
+  adns_status here, min, max;
+
+  here= *st;
+  min= (sti==stinfos) ? 0 : sti[-1].stmax+1;
+  max= sti->stmax;
+  
+  return here < min  ? -1 : here > max ? 1 : 0;
+}
+
+const char *adns_errtypeabbrev(adns_status st) {
+  const struct stinfo *sti;
+
+  sti= bsearch(&st,stinfos,sizeof(stinfos)/sizeof(*stinfos),sizeof(*stinfos),sti_compar);
+  return sti->abbrev;
+}
+
+
 void adns__isort(void *array, int nobjs, int sz, void *tempbuf,
                 int (*needswap)(void *context, const void *a, const void *b),
                 void *context) {
index 5cc2d15a45681d21832f61b81d25c07e23217661..668986f3974d9f9051bb8069d6d2b7d972eb40e5 100644 (file)
@@ -552,14 +552,20 @@ static void mf_hostaddr(adns_query qu, void *datap) {
 static adns_status csp_hostaddr(vbuf *vb, const adns_rr_hostaddr *rrp) {
   const char *errstr;
   adns_status st;
+  char buf[20];
   int i;
 
   st= csp_domain(vb,rrp->host);  if (st) return st;
 
   CSP_ADDSTR(" ");
-  CSP_ADDSTR(adns_errabbrev(rrp->astatus));
+  CSP_ADDSTR(adns_errtypeabbrev(rrp->astatus));
+
+  sprintf(buf," %d ",rrp->astatus);
+  CSP_ADDSTR(buf);
 
+  CSP_ADDSTR(adns_errabbrev(rrp->astatus));
   CSP_ADDSTR(" ");
+
   errstr= adns_strerror(rrp->astatus);
   st= csp_qstring(vb,errstr,strlen(errstr));  if (st) return st;