diff options
Diffstat (limited to 'Ivy/ThreadedSocket.cxx')
-rw-r--r-- | Ivy/ThreadedSocket.cxx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Ivy/ThreadedSocket.cxx b/Ivy/ThreadedSocket.cxx index ee1e03b..7d43bb5 100644 --- a/Ivy/ThreadedSocket.cxx +++ b/Ivy/ThreadedSocket.cxx @@ -304,8 +304,19 @@ int CThreadedSocket::AddMember( const char * lpszHostAddress ) }
if ( IN_CLASSD( htonl(imr.imr_multiaddr.s_addr) ) )
{
- SetSockOpt( IP_MULTICAST_TTL, &multicast_ttl, sizeof( multicast_ttl ), IPPROTO_IP );
- SetSockOpt( IP_ADD_MEMBERSHIP, &imr, sizeof( imr ), IPPROTO_IP );
+ int err;
+ err = SetSockOpt( IP_MULTICAST_TTL, &multicast_ttl, sizeof( multicast_ttl ), IPPROTO_IP );
+ if ( err != 0 )
+ {
+ TRACE("CThreadedSocket::AddMember IP_MULTICAST_TTL error %d\n", GetLastError());
+ return err;
+ }
+ err = SetSockOpt( IP_ADD_MEMBERSHIP, &imr, sizeof( imr ), IPPROTO_IP );
+ if ( err != 0 )
+ {
+ TRACE("CThreadedSocket::AddMember IP_ADD_MEMBERSHIP error %d\n", GetLastError());
+ return err;
+ }
}
return 0;
}
|