- /* Only interested in af XNS */
- iffound = 0;
- for( j = 0; j < NIFADDR; j++) {
- if (ifs.if_addr[j].sa_family != AF_XNS)
- continue;
- /* already known to us? */
- if (if_ifwithaddr(&ifs.if_addr[j]))
- continue;
- ifaddr = ifs.if_addr[j];
- ifdstaddr = ifs.if_dstaddr[j];
- iffound++;
+ /* already known to us? */
+ if (if_ifwithaddr(&ifs.int_addr))
+ continue;
+ /* argh, this'll have to change sometime */
+ if (ifs.int_addr.sa_family != AF_NS)
+ continue;
+ if (ifs.int_flags & IFF_POINTOPOINT) {
+ if (ioctl(s, SIOCGIFDSTADDR, (char *)&ifreq) < 0) {
+ syslog(LOG_ERR, "ioctl (get dstaddr)");
+ continue;
+ }
+ ifs.int_dstaddr = ifreq.ifr_dstaddr;
+ }
+ if (ifs.int_flags & IFF_BROADCAST) {
+ if (ioctl(s, SIOCGIFBRDADDR, (char *)&ifreq) < 0) {
+ syslog(LOG_ERR, "ioctl (get broadaddr)");
+ continue;
+ }
+ ifs.int_broadaddr = ifreq.ifr_broadaddr;