UDP disconnect to INADDR_LOOPBACK and port 0 because

a UDP connect to AF_UNSPEC only works with modern IP kernel
This commit is contained in:
Jeff Hill
2005-11-03 22:23:09 +00:00
parent 63a7e4c72a
commit 5881fc0cfc
2 changed files with 11 additions and 2 deletions
+6 -1
View File
@@ -454,9 +454,14 @@ void casDGIntfIO::sendBeaconIO ( char & msg, unsigned length,
{
// disconnect so that bogus messages arriving at the ephemeral port
// do not consume resources
//
// UDP disconnect to INADDR_LOOPBACK and port 0 because
// a UDP connect to AF_UNSPEC only works with modern IP kernel
osiSockAddr sockAddr;
memset ( &sockAddr, 0, sizeof ( sockAddr ) );
sockAddr.sa.sa_family = AF_UNSPEC;
sockAddr.ia.sin_family = AF_INET;
sockAddr.ia.sin_addr.s_addr = INADDR_LOOPBACK;
sockAddr.ia.sin_port = 0;
status = connect ( this->beaconSock,
& sockAddr.sa, sizeof ( sockAddr.sa ) );
if ( status < 0 ) {
+5 -1
View File
@@ -268,7 +268,11 @@ void rsrv_online_notify_task(void *pParm)
*/
osiSockAddr sockAddr;
memset ( &sockAddr, 0, sizeof ( sockAddr ) );
sockAddr.sa.sa_family = AF_UNSPEC;
// connect to INADDR_LOOPBACK and port 0 because
// connect to AF_UNSPEC only works with modern IP kernel
sockAddr.ia.sin_family = AF_INET;
sockAddr.ia.sin_addr.s_addr = INADDR_LOOPBACK;
sockAddr.ia.sin_port = 0;
status = connect ( sock,
& sockAddr.sa, sizeof ( sockAddr.sa ) );
if ( status < 0 ) {