STABLE14-rx-getaddrs-skip-loopback-addr-on-bsd-too-20050326

as reported by Tracy Demarco-White


(cherry picked from commit 4cbe2e7ebfc993a3d09d558cd58757e0b858facd)
This commit is contained in:
Derrick Brashear 2005-03-26 06:55:20 +00:00
parent 7f4cdf1760
commit 731165ecda

View File

@ -284,26 +284,28 @@ rxi_getAllAddrMaskMtu(afs_int32 addrBuffer[], afs_int32 maskBuffer[],
continue; continue;
a = info.rti_info[RTAX_IFA]; a = info.rti_info[RTAX_IFA];
if (count >= maxSize) { /* no more space */ if (a->sin_addr.s_addr != htonl(0x7f000001) ) {
printf("Too many interfaces..ignoring 0x%x\n", if (count >= maxSize) { /* no more space */
a->sin_addr.s_addr); printf("Too many interfaces..ignoring 0x%x\n",
} else { a->sin_addr.s_addr);
struct ifreq ifr; } else {
struct ifreq ifr;
addrBuffer[count] = a->sin_addr.s_addr;
a = info.rti_info[RTAX_NETMASK]; addrBuffer[count] = a->sin_addr.s_addr;
if (a) a = info.rti_info[RTAX_NETMASK];
maskBuffer[count] = a->sin_addr.s_addr; if (a)
else maskBuffer[count] = a->sin_addr.s_addr;
maskBuffer[count] = htonl(0xffffffff); else
memset(&ifr, sizeof(ifr), 0); maskBuffer[count] = htonl(0xffffffff);
ifr.ifr_addr.sa_family = AF_INET; memset(&ifr, sizeof(ifr), 0);
strncpy(ifr.ifr_name, sdl->sdl_data, sdl->sdl_nlen); ifr.ifr_addr.sa_family = AF_INET;
if (ioctl(s, SIOCGIFMTU, (caddr_t) & ifr) < 0) strncpy(ifr.ifr_name, sdl->sdl_data, sdl->sdl_nlen);
mtuBuffer[count] = htonl(1500); if (ioctl(s, SIOCGIFMTU, (caddr_t) & ifr) < 0)
else mtuBuffer[count] = htonl(1500);
mtuBuffer[count] = htonl(ifr.ifr_mtu); else
count++; mtuBuffer[count] = htonl(ifr.ifr_mtu);
count++;
}
} }
addrcount--; addrcount--;
ifam = (struct ifa_msghdr *)((char *)ifam + ifam->ifam_msglen); ifam = (struct ifa_msghdr *)((char *)ifam + ifam->ifam_msglen);