chiark / gitweb /
Copyright dates fixed; various TODOs added.
[adns] / client / adnstest.c
index 9768d7463f245b4d7cc240109f45ff0d29da9663..ea9ed2a35bd1e7c98ca41fa164d281f0356b1a3d 100644 (file)
@@ -3,7 +3,7 @@
  * - simple test program, not part of the library
  */
 /*
  * - simple test program, not part of the library
  */
 /*
- *  This file is part of adns, which is Copyright (C) 1997, 1998 Ian Jackson
+ *  This file is part of adns, which is Copyright (C) 1997-1999 Ian Jackson
  *  
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -70,13 +70,21 @@ int main(int argc, char *const *argv) {
   adns_state ads;
   adns_query *qus, qu;
   adns_answer *ans;
   adns_state ads;
   adns_query *qus, qu;
   adns_answer *ans;
-  const char *rrtn, *fmtn, *const *domlist;
+  const char *initstring, *rrtn, *fmtn;
+  const char *const *domlist;
   char *show, *cp;
   int len, i, qc, qi, tc, ti, ch;
   adns_status r, ri;
   const adns_rrtype *types;
   adns_rrtype *types_a;
 
   char *show, *cp;
   int len, i, qc, qi, tc, ti, ch;
   adns_status r, ri;
   const adns_rrtype *types;
   adns_rrtype *types_a;
 
+  if (argv[0] && argv[1] && argv[1][0] == '/') {
+    initstring= argv[1]+1;
+    argv++;
+  } else {
+    initstring= 0;
+  }
+  
   if (argv[0] && argv[1] && argv[1][0] == ':') {
     for (cp= argv[1]+1, tc=1; (ch= *cp); cp++)
       if (ch==',') tc++;
   if (argv[0] && argv[1] && argv[1][0] == ':') {
     for (cp= argv[1]+1, tc=1; (ch= *cp); cp++)
       if (ch==',') tc++;
@@ -86,7 +94,7 @@ int main(int argc, char *const *argv) {
       types_a[ti]= strtoul(cp,&cp,10);
       if ((ch= *cp)) {
        if (ch != ',') {
       types_a[ti]= strtoul(cp,&cp,10);
       if ((ch= *cp)) {
        if (ch != ',') {
-         fputs("usage: dtest [:<typenum>,...] [<domain> ...]\n",stderr);
+         fputs("usage: dtest [/<initstring>] [:<typenum>,...] [<domain> ...]\n",stderr);
          exit(4);
        }
        cp++;
          exit(4);
        }
        cp++;
@@ -106,7 +114,11 @@ int main(int argc, char *const *argv) {
   qus= malloc(sizeof(qus)*qc*tc);
   if (!qus) { perror("malloc qus"); exit(3); }
 
   qus= malloc(sizeof(qus)*qc*tc);
   if (!qus) { perror("malloc qus"); exit(3); }
 
-  r= adns_init(&ads,adns_if_debug|adns_if_noautosys,0);
+  if (initstring) {
+    r= adns_init_strcfg(&ads,adns_if_debug|adns_if_noautosys,stdout,initstring);
+  } else {
+    r= adns_init(&ads,adns_if_debug|adns_if_noautosys,0);
+  }
   if (r) failure("init",r);
 
   for (qi=0; qi<qc; qi++) {
   if (r) failure("init",r);
 
   for (qi=0; qi<qc; qi++) {