summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>1997-06-20 17:54:11 +0000
committerwpaul <wpaul@FreeBSD.org>1997-06-20 17:54:11 +0000
commit24968494546dd7b4544d322f1ff342fed30205e6 (patch)
treebb9829cc7c7296297e91426655447bc5b8aff487 /usr.sbin
parent50bef408d8bc90fe72fac702e6f286e90a29c896 (diff)
downloadFreeBSD-src-24968494546dd7b4544d322f1ff342fed30205e6.zip
FreeBSD-src-24968494546dd7b4544d322f1ff342fed30205e6.tar.gz
Hm... wonder how long this has been here.
The logic in get_myaddress() is broken: it always returns the loopback address due to the following rule: if ((ifreq.ifr_flags & IFF_UP) && ifr->ifr_addr.sa_family == AF_INET && (loopback == 1 && (ifreq.ifr_flags & IFF_LOOPBACK))) { The idea is that we want to select the interface address only if it's up and it's in the AF_INET family. If it turns uout we don't have such an interface available, we make a second pass through the loop, this time settling for the loopback interface. But the logic inadvertently locks out all cases when loopback == 0, so nothing is ever selected until the second pass (when loopback == 1). This is changed to: if (((ifreq.ifr_flags & IFF_UP) && ifr->ifr_addr.sa_family == AF_INET) || (loopback == 1 && (ifreq.ifr_flags & IFF_LOOPBACK))) { which I think does the right thing. This is yet another bogon I discovered during NIS+ testing; I need get_myaddress() to work correctly so that the callback code in the client library will work.
Diffstat (limited to 'usr.sbin')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud