initialize net mask entry

This commit is contained in:
Jeff Hill
2000-11-21 22:17:07 +00:00
parent f211944fb3
commit 16d897ff93
2 changed files with 13 additions and 0 deletions

View File

@@ -231,9 +231,14 @@ epicsShareFunc void epicsShareAPI osiSockDiscoverBroadcastAddresses
unsigned result = (addr & mask) | (bcast &~mask);
pNewNode->addr.ia.sin_family = AF_INET;
pNewNode->addr.ia.sin_addr.s_addr = result;
pNewNode->addr.ia.sin_port = 0u;
pNewNode->netMask.ia.sin_family = AF_INET;
pNewNode->netMask.ia.sin_addr.s_addr = mask;
pNewNode->netMask.ia.sin_port = 0u;
}
else {
pNewNode->addr.sa = pIfinfo->iiBroadcastAddress.Address;
memset ( &pNewNode->netMask, '\0', sizeof ( pNewNode->netMask ) );
}
/*

View File

@@ -181,6 +181,13 @@ epicsShareFunc void epicsShareAPI osiSockDiscoverBroadcastAddresses
continue;
}
pNewNode->addr.sa = pifreq->ifr_broadaddr;
status = socket_ioctl (socket, SIOCGIFNETMASK, pifreq);
if ( status ) {
errlogPrintf ("osiSockDiscoverInterfaces(): net intf \"%s\": net mask fetch fail\n", pifreq->ifr_name);
free ( pNewNode );
continue;
}
pNewNode->netMask.sa = pifreq->ifr_netmask;
}
else if ( pifreq->ifr_flags & IFF_POINTOPOINT ) {
status = socket_ioctl ( socket, SIOCGIFDSTADDR, pifreq);
@@ -190,6 +197,7 @@ epicsShareFunc void epicsShareAPI osiSockDiscoverBroadcastAddresses
continue;
}
pNewNode->addr.sa = pifreq->ifr_dstaddr;
memset ( &pNewNode->netMask, '\0', sizeof ( pNewNode->netMask ) );
}
else {
errlogPrintf ( "osiSockDiscoverInterfaces(): net intf \"%s\": not pt to pt or bcast?\n", pifreq->ifr_name );