chiark / gitweb /
Proper spec. of NULL handling.
authorian <ian>
Tue, 10 Nov 1998 02:43:02 +0000 (02:43 +0000)
committerian <ian>
Tue, 10 Nov 1998 02:43:02 +0000 (02:43 +0000)
client/adnstest.c
src/adns.h
src/types.c

index 92e8a9f028e09a4381760814e5d8ad90915df1bc..7c7d1851df7dba136eefae9cd0cd701387a4564b 100644 (file)
@@ -68,15 +68,23 @@ int main(int argc, const char *const *argv) {
 
   for (qi=0; qi<qc; qi++) {
     for (ti=0; ti<tc; ti++) {
-      fprintf(stdout,"submitting %s %d\n",argv[qi],types[ti]);
+      fprintf(stdout,"%s type %d",argv[qi],types[ti]);
       r= adns_submit(ads,argv[qi],types[ti],0,0,&qus[qi*tc+ti]);
-      if (r) failure("submit",r);
+      if (r == adns_s_notimplemented) {
+       fprintf(stdout," not implemented\n");
+       qus[qi*tc+ti]= 0;
+      } else if (r) {
+       failure("submit",r);
+      } else {
+       fprintf(stdout," submitted\n");
+      }
     }
   }
 
   for (qi=0; qi<qc; qi++) {
     for (ti=0; ti<tc; ti++) {
       qu= qus[qi*tc+ti];
+      if (!qu) continue;
       r= adns_wait(ads,&qu,&ans,0);
       if (r) failure("wait",r);
 
index 5e8cf8089235702d59ddea6c5aa636387bf4ff0a..d265506814de32e444862e611e9fb5070d2e8a9f 100644 (file)
@@ -154,7 +154,8 @@ typedef struct {
   union {
     void *untyped;
     unsigned char *bytes;
-    char *(*str);                  /* ns_raw, cname, ptr, ptr_raw, txt */
+    char *(*str);                  /* ns_raw, cname, ptr, ptr_raw */
+    char *(**manystr);             /* txt (list is null-terminated) */
     struct in_addr *inaddr;        /* a */
     adns_rr_dmaddr *dmaddr;        /* ns */
     adns_rr_strpair *strpair;      /* hinfo, rp, rp_raw */
index c484d949894962d781b9afebf5bd1f2dd6315e07..2a96609a2eed6f3bec3e195e72c477e3ad1a6d45 100644 (file)
@@ -73,26 +73,6 @@ static adns_status pa_domain_raw(adns_query qu, int serv,
   return st;
 }
 
-static adns_status pa_txt(adns_query qu, int serv,
-                         const byte *dgram, int dglen, int cbyte, int max,
-                         void *store_r) {
-  vbuf vb;
-
-  adns__vbuf_init(&vb);
-
-  while (dg
-  char *bp;
-
-  max-= cbyte;
-  dgram+= cbyte;
-  
-  bp= adns__alloc_interim(qu,max+1); if (!bp) return adns_s_nolocalmem;
-  bp[max]= 0;
-  memcpy(bp,dgram,max);
-  *(char**)store_r= bp;
-  return adns_s_ok;
-}
-
 static void mf_str(adns_query qu, void *data) {
   char **ddp= data;
 
@@ -156,9 +136,7 @@ static const typeinfo typeinfos[] = {
 #if 0 /*fixme*/
   { adns_r_hinfo,   "HINFO", 0,        DEEP_MEMB(strpair),   pa_hinfo       },
   { adns_r_mx_raw,  "MX",   "raw",     DEEP_MEMB(intstr),    pa_mx_raw      },
-#endif
-  { adns_r_txt,     "TXT",   0,        DEEP_MEMB(str),       pa_txt         },
-#if 0 /*fixme*/
+  { adns_r_txt,     "TXT",   0,        DEEP_MEMB(manystr),   pa_txt         },
   { adns_r_rp_raw,  "RP",   "raw",     DEEP_MEMB(strpair),   pa_rp          },
                                                                           
   { adns_r_ns,      "NS",   "+addr",   DEEP_MEMB(dmaddr),    pa_dmaddr      },