From: Danny Mayer Date: Wed, 7 Jan 2004 01:55:01 +0000 (-0500) Subject: Broadcast addresses were not being set for systems with IPv6 capability X-Git-Tag: NTP_4_2_3~188^2^2^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=030d89331843978a303245c38404c0372e52bac1;p=thirdparty%2Fntp.git Broadcast addresses were not being set for systems with IPv6 capability bk: 3ffb66f5e4WlWRdvNSl2e9uBVKVGoQ --- diff --git a/libisc/ifiter_ioctl.c b/libisc/ifiter_ioctl.c index cd0ced87c2..b83c2fbae0 100644 --- a/libisc/ifiter_ioctl.c +++ b/libisc/ifiter_ioctl.c @@ -704,6 +704,27 @@ internal_current6(isc_interfaceiter_t *iter) { get_addr(family, &iter->current.dstaddress, (struct sockaddr *)&lifreq.lifr_dstaddr); } + if ((iter->current.flags & INTERFACE_F_BROADCAST) != 0) { + /* + * Ignore the HP/UX warning about "integer overflow during + * conversion. It comes from its own macro definition, + * and is really hard to shut up. + */ + if (ioctl(iter->socket, SIOCGLIFBRDADDR, (char *)&lifreq) + < 0) { + isc__strerror(errno, strbuf, sizeof(strbuf)); + UNEXPECTED_ERROR(__FILE__, __LINE__, + isc_msgcat_get(isc_msgcat, + ISC_MSGSET_IFITERIOCTL, + ISC_MSG_GETDESTADDR, + "%s: getting " + "broadcast address: %s"), + lifreq.lifr_name, strbuf); + return (ISC_R_IGNORE); + } + get_addr(family, &iter->current.broadcast, + (struct sockaddr *)&lifreq.lifr_broadaddr); + } /*