1 #include "headers.h" 2 #include <bio.h> 3 #include <ndb.h> 4 5 int 6 nbnameresolve(NbName nbname, uchar *ipaddr) 7 { 8 /* for now, just use dns */ 9 Ndbtuple *t; 10 NbName copy; 11 char name[NETPATHLEN]; 12 ulong ttl; 13 if (nbremotenametablefind(nbname, ipaddr)) { 14 //print("%B found in cache\n", nbname); 15 return 1; 16 } 17 if (nbnsfindname(nil, nbname, ipaddr, &ttl) == 0) { 18 nbremotenametableadd(nbname, ipaddr, ttl); 19 return 1; 20 } 21 nbnamecpy(copy, nbname); 22 copy[NbNameLen - 1] = 0; 23 nbmkstringfromname(name, sizeof(name), copy); 24 t = dnsquery("/net", name, "ip"); 25 if (t == nil) 26 return 0; 27 if (parseip(ipaddr, t->line->val) == 0) { 28 ndbfree(t); 29 return 0; 30 } 31 ndbfree(t); 32 return 1; 33 } 34