try INADD_NONE based UDP "disconnect" on various OS

This commit is contained in:
Jeff Hill
2005-11-07 16:53:35 +00:00
parent c16fa4bb78
commit 3dfe7043ba

View File

@@ -263,18 +263,16 @@ void rsrv_online_notify_task(void *pParm)
{
/*
* disconnect so that bogus messages arriving at the ephemeral port
* do not consume resources
*/
* Connect to INADDR_NONE because a UDP connect to AF_UNSPEC
* only works with modern IP kernel.
* INADDR_NONE can never be a source address and therefore no
* messages can be received.
*/
osiSockAddr sockAddr;
memset ( &sockAddr, 0, sizeof ( sockAddr ) );
/*
* 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;
sockAddr.ia.sin_addr.s_addr = INADDR_NONE;
sockAddr.ia.sin_port = htons ( port );
status = connect ( sock,
& sockAddr.sa, sizeof ( sockAddr.sa ) );
if ( status < 0 ) {