Fix for systems that has sa_len, but returns zero length from

SIOCGIFCONF.


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2193 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-07-12 14:45:43 +00:00
parent 0cb73bdd1e
commit fd66f50da2

View File

@@ -75,15 +75,12 @@ find_all_addresses (krb5_addresses *res)
for (p = ifconf.ifc_buf; p < ifconf.ifc_buf + ifconf.ifc_len;) {
struct ifreq *ifr = (struct ifreq *)p;
/*
* This is not the real test and fails on Cray, but I've not
* found any more reliable test.
*/
/* This is somewhat kludgy, but it seems to work. */
#ifdef SOCKADDR_HAS_SA_LEN
size_t sz = sizeof(ifr->ifr_name) + ifr->ifr_addr.sa_len;
#else
size_t sz = sizeof(*ifr);
#ifdef SOCKADDR_HAS_SA_LEN
if(ifr->ifr_addr.sa_len)
sz = sizeof(ifr->ifr_name) + ifr->ifr_addr.sa_len;
#endif
if(strncmp(ifreq.ifr_name, ifr->ifr_name, sizeof(ifr->ifr_name))) {
if(ioctl(fd, SIOCGIFFLAGS, ifr) < 0) {