diff options
author | cinap_lenrek <cinap_lenrek@rei2.9hal> | 2012-03-02 17:47:01 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@rei2.9hal> | 2012-03-02 17:47:01 +0100 |
commit | bf686ffabcc2b92bc4c8de248cf21b47f149b4a2 (patch) | |
tree | ece445a56db1875f8fc753ca1c837a690ce45880 /sys/src/cmd/ndb/dblookup.c | |
parent | d8a60343baca2cc85084e18a817dbf2f0e816dd7 (diff) |
dns: discover my ip address at runtime
Diffstat (limited to 'sys/src/cmd/ndb/dblookup.c')
-rw-r--r-- | sys/src/cmd/ndb/dblookup.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/src/cmd/ndb/dblookup.c b/sys/src/cmd/ndb/dblookup.c index fa7b92627..a704983c4 100644 --- a/sys/src/cmd/ndb/dblookup.c +++ b/sys/src/cmd/ndb/dblookup.c @@ -761,7 +761,8 @@ dnforceage(void) unlock(&dblock); } -extern uchar ipaddr[IPaddrlen]; /* my ip address */ +extern char mntpt[Maxpath]; /* net mountpoint */ +static uchar ipaddr[IPaddrlen]; /* my ip address */ /* * get all my xxx @@ -774,6 +775,10 @@ lookupinfo(char *attr) char *a[2]; Ndbtuple *t; + if(ipcmp(ipaddr, IPnoaddr) == 0) + if(myipaddr(ipaddr, mntpt) < 0) + return nil; + snprint(buf, sizeof buf, "%I", ipaddr); a[0] = attr; @@ -843,6 +848,9 @@ myaddr(char *addr) char buf[64]; Biobuf *bp; + if(ipcmp(ipaddr, IPnoaddr) == 0) + return -1; + snprint(buf, sizeof buf, "%I", ipaddr); if (strcmp(addr, buf) == 0) { dnslog("rejecting my ip %s as local dns server", addr); |