SCCS-vsn: sys/netinet/in.c 7.7
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*
- * @(#)in.c 7.6 (Berkeley) %G%
+ * @(#)in.c 7.7 (Berkeley) %G%
{
register struct ifreq *ifr = (struct ifreq *)data;
register struct in_ifaddr *ia = 0;
{
register struct ifreq *ifr = (struct ifreq *)data;
register struct in_ifaddr *ia = 0;
struct ifaddr *ifa;
struct mbuf *m;
int error;
struct ifaddr *ifa;
struct mbuf *m;
int error;
if ((ifp->if_flags & IFF_BROADCAST) == 0)
return (EINVAL);
ia->ia_broadaddr = ifr->ifr_broadaddr;
if ((ifp->if_flags & IFF_BROADCAST) == 0)
return (EINVAL);
ia->ia_broadaddr = ifr->ifr_broadaddr;
- tmp = ntohl(satosin(&ia->ia_broadaddr)->sin_addr.s_addr);
- if ((tmp &~ ia->ia_subnetmask) == ~ia->ia_subnetmask)
- tmp |= ~ia->ia_netmask;
- else if ((tmp &~ ia->ia_subnetmask) == 0)
- tmp &= ia->ia_netmask;
- ia->ia_netbroadcast.s_addr = htonl(tmp);