1 /* one-shot resolver */
11 char *logfile = "dnsgetip";
18 int traceactivity = 0;
19 char *zonerefreshprogram;
24 char Ebotch[] = "dns botch";
27 resolve(char *name, int type)
37 memset(&req, 0, sizeof req);
40 req.aborttime = NS2MS(nowns) + Maxreqtm;
42 rr = dnresolve(name, Cin, type, &req, 0, 0, Recurse, 0, &status);
44 if(rr == nil || neg != nil){
46 status = neg->negrcode;
48 if(status > 0 && status < nrname)
49 errmsg = rname[status];
54 for(rp = rr; rp != nil; rp = rp->next){
55 print("%s\n", rp->ip->name);
69 fprint(2, "%s: [-adx] domain\n", argv0);
74 main(int argc, char **argv)
78 strcpy(mntpt, "/net");
90 strcpy(mntpt, "/net.alt");
99 if(strcmp(ipattr(*argv), "ip") == 0)
100 print("%s\n", *argv);
103 e4 = resolve(*argv, Ta);
104 e6 = resolve(*argv, Taaaa);
108 sysfatal("%s: dns failure: %s", *argv, e4);
110 sysfatal("%s: dns failure: v4: %s: v6: %s", *argv, e4, e6);
117 getdnsservers(int class)
119 return dnsservers(class);
123 void syslog(int, char*, char*, ...){}
124 void logreply(int, uchar*, DNSmsg*){}
125 void logsend(int, int, uchar*, char*, char*, int){}