1 /* one-shot resolver */
11 char *logfile = "dnsgetip";
17 int traceactivity = 0;
18 char *zonerefreshprogram;
23 char Ebotch[] = "dns botch";
26 resolve(char *name, int type)
36 memset(&req, 0, sizeof req);
39 req.aborttime = NS2MS(nowns) + Maxreqtm;
41 rr = dnresolve(name, Cin, type, &req, nil, 0, Recurse, 0, &status);
43 if(rr == nil || neg != nil){
45 status = neg->negrcode;
47 if(status > 0 && status < nrname)
48 errmsg = rname[status];
53 for(rp = rr; rp != nil; rp = rp->next){
54 print("%s\n", rp->ip->name);
68 fprint(2, "%s: [-adx] domain\n", argv0);
73 main(int argc, char **argv)
77 strcpy(mntpt, "/net");
89 strcpy(mntpt, "/net.alt");
98 if(strcmp(ipattr(*argv), "ip") == 0)
102 e4 = resolve(*argv, Ta);
103 e6 = resolve(*argv, Taaaa);
107 sysfatal("%s: dns failure: %s", *argv, e4);
109 sysfatal("%s: dns failure: v4: %s: v6: %s", *argv, e4, e6);
116 getdnsservers(int class)
118 return dnsservers(class);
122 void syslog(int, char*, char*, ...){}
123 void logreply(int, uchar*, DNSmsg*){}
124 void logsend(int, int, uchar*, char*, char*, int){}