- /* See if the address matches the broadcast address of some interface */
- ifreq_list(bfd, &ifs, &nifs);
- for(n = 0; n < nifs; ++n) {
- if(ioctl(bfd, SIOCGIFBRDADDR, &ifs[n]) < 0)
- fatal(errno, "error calling ioctl SIOCGIFBRDADDR");
- if(sockaddr_equal(&ifs[n].ifr_broadaddr, res->ai_addr))
+ if(getifaddrs(&ifs) < 0)
+ fatal(errno, "error calling getifaddrs");
+ while(ifs) {
+ if((ifs->ifa_flags & IFF_BROADCAST)
+ && sockaddr_equal(ifs->ifa_broadaddr, res->ai_addr))