|
@@ -70,13 +70,11 @@ opendatabase(void)
|
|
|
return 0;
|
|
|
|
|
|
xdb = ndbopen(dbfile); /* /lib/ndb */
|
|
|
- if(xdb)
|
|
|
- xdb->nohash = 1; /* seems odd */
|
|
|
|
|
|
snprint(netdbnm, sizeof netdbnm, "%s/ndb", mntpt);
|
|
|
netdb = ndbopen(netdbnm); /* /net/ndb */
|
|
|
-// if(netdb)
|
|
|
-// netdb->nohash = 1; /* cs does this; seems right */
|
|
|
+ if(netdb)
|
|
|
+ netdb->nohash = 1;
|
|
|
|
|
|
db = ndbcat(netdb, xdb); /* both */
|
|
|
return db? 0: -1;
|
|
@@ -867,6 +865,7 @@ myaddr(char *addr)
|
|
|
}
|
|
|
|
|
|
static char *locdns[20];
|
|
|
+static QLock locdnslck;
|
|
|
|
|
|
static void
|
|
|
addlocaldnsserver(DN *dp, int class, char *ipaddr, int i)
|
|
@@ -875,7 +874,6 @@ addlocaldnsserver(DN *dp, int class, char *ipaddr, int i)
|
|
|
DN *nsdp;
|
|
|
RR *rp;
|
|
|
char buf[32];
|
|
|
- static QLock locdnslck;
|
|
|
|
|
|
/* reject our own ip addresses so we don't query ourselves via udp */
|
|
|
if (myaddr(ipaddr))
|
|
@@ -891,7 +889,7 @@ addlocaldnsserver(DN *dp, int class, char *ipaddr, int i)
|
|
|
}
|
|
|
if (n < nelem(locdns))
|
|
|
if (locdns[n] == nil || ++n < nelem(locdns))
|
|
|
- locdns[n] = strdup(ipaddr); /* remember first few local ns */
|
|
|
+ locdns[n] = strdup(ipaddr); /* remember 1st few local ns */
|
|
|
qunlock(&locdnslck);
|
|
|
|
|
|
/* ns record for name server, make up an impossible name */
|
|
@@ -927,7 +925,7 @@ RR*
|
|
|
dnsservers(int class)
|
|
|
{
|
|
|
int i, n;
|
|
|
- char *p, *buf;
|
|
|
+ char *p;
|
|
|
char *args[5];
|
|
|
Ndbtuple *t, *nt;
|
|
|
RR *nsrp;
|
|
@@ -940,11 +938,10 @@ dnsservers(int class)
|
|
|
|
|
|
p = getenv("DNSSERVER"); /* list of ip addresses */
|
|
|
if(p != nil){
|
|
|
- buf = estrdup(p);
|
|
|
- n = tokenize(buf, args, nelem(args));
|
|
|
+ n = tokenize(p, args, nelem(args));
|
|
|
for(i = 0; i < n; i++)
|
|
|
addlocaldnsserver(dp, class, args[i], i);
|
|
|
- free(buf);
|
|
|
+ free(p);
|
|
|
} else {
|
|
|
t = lookupinfo("@dns"); /* @dns=ip1 @dns=ip2 ... */
|
|
|
if(t == nil)
|
|
@@ -1134,7 +1131,7 @@ createv6ptrs(void)
|
|
|
buf[sizeof buf-1] = 0;
|
|
|
/* buf contains something like 2.0.0.2.ip6.arpa (n==6) */
|
|
|
n = getfields(buf, f, nelem(f), 0, ".");
|
|
|
- pfxnibs = n - 2;
|
|
|
+ pfxnibs = n - 2; /* 2 for .ip6.arpa */
|
|
|
if (pfxnibs < 0 || pfxnibs > V6maxrevdomdepth)
|
|
|
continue;
|
|
|
|
|
@@ -1155,7 +1152,6 @@ createv6ptrs(void)
|
|
|
/*
|
|
|
* go through all domain entries looking for RR's
|
|
|
* in this network and create ptrs.
|
|
|
- * +2 for .ip6.arpa.
|
|
|
*/
|
|
|
dnptr(net, mask, dom, Taaaa, V6maxrevdomdepth - pfxnibs, Ptrttl);
|
|
|
}
|