@@ -1056,17 +1056,14 @@ int WaitForMessage(rfbClient* client,unsigned int usecs)
10561056}
10571057
10581058
1059- int CreateMulticastSocket (struct sockaddr_storage multicastSockAddr , int so_recvbuf )
1059+ rfbSocket CreateMulticastSocket (struct sockaddr_storage multicastSockAddr , int so_recvbuf )
10601060{
1061- int sock ;
1061+ rfbSocket sock ;
10621062 struct sockaddr_storage localAddr ;
10631063 int optval ;
10641064 socklen_t optval_len = sizeof (optval );
10651065 int dfltrcvbuf ;
10661066
1067- if (!initSockets ())
1068- return -1 ;
1069-
10701067 localAddr = multicastSockAddr ;
10711068 /* set source addr of localAddr to ANY,
10721069 the rest is the same as in multicastSockAddr */
@@ -1078,7 +1075,7 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
10781075 else
10791076 {
10801077 rfbClientErr ("CreateMulticastSocket: neither IPv4 nor IPv6 address received\n" );
1081- return -1 ;
1078+ return RFB_INVALID_SOCKET ;
10821079 }
10831080
10841081
@@ -1089,7 +1086,7 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
10891086 errno = WSAGetLastError ();
10901087#endif
10911088 rfbClientErr ("CreateMulticastSocket: error creating socket: %s\n" , strerror (errno ));
1092- return -1 ;
1089+ return RFB_INVALID_SOCKET ;
10931090 }
10941091
10951092 optval = 1 ;
@@ -1099,8 +1096,8 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
10991096 errno = WSAGetLastError ();
11001097#endif
11011098 rfbClientErr ("CreateMulticastSocket: error setting reuse addr: %s\n" , strerror (errno ));
1102- close (sock );
1103- return -1 ;
1099+ rfbCloseSocket (sock );
1100+ return RFB_INVALID_SOCKET ;
11041101 }
11051102
11061103 /* get/set socket receive buffer */
@@ -1110,8 +1107,8 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
11101107 errno = WSAGetLastError ();
11111108#endif
11121109 rfbClientErr ("CreateMulticastSocket: error getting rcv buf size: %s\n" , strerror (errno ));
1113- close (sock );
1114- return -1 ;
1110+ rfbCloseSocket (sock );
1111+ return RFB_INVALID_SOCKET ;
11151112 }
11161113 dfltrcvbuf = optval ;
11171114 optval = so_recvbuf ;
@@ -1121,17 +1118,17 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
11211118 errno = WSAGetLastError ();
11221119#endif
11231120 rfbClientErr ("CreateMulticastSocket: error setting rcv buf size: %s\n" , strerror (errno ));
1124- close (sock );
1125- return -1 ;
1121+ rfbCloseSocket (sock );
1122+ return RFB_INVALID_SOCKET ;
11261123 }
11271124 if (getsockopt (sock , SOL_SOCKET , SO_RCVBUF ,(char * )& optval , & optval_len ) < 0 )
11281125 {
11291126#ifdef WIN32
11301127 errno = WSAGetLastError ();
11311128#endif
11321129 rfbClientErr ("CreateMulticastSocket: error getting set rcv buf size: %s\n" , strerror (errno ));
1133- close (sock );
1134- return -1 ;
1130+ rfbCloseSocket (sock );
1131+ return RFB_INVALID_SOCKET ;
11351132 }
11361133 rfbClientLog ("MulticastVNC: tried to set socket receive buffer from %d to %d, got %d\n" ,
11371134 dfltrcvbuf , so_recvbuf , optval );
@@ -1143,8 +1140,8 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
11431140 errno = WSAGetLastError ();
11441141#endif
11451142 rfbClientErr ("CreateMulticastSocket: error binding socket: %s\n" , strerror (errno ));
1146- close (sock );
1147- return -1 ;
1143+ rfbCloseSocket (sock );
1144+ return RFB_INVALID_SOCKET ;
11481145 }
11491146
11501147
@@ -1165,8 +1162,8 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
11651162 errno = WSAGetLastError ();
11661163#endif
11671164 rfbClientErr ("CreateMulticastSocket: error joining IPv4 multicast group: %s\n" , strerror (errno ));
1168- close (sock );
1169- return -1 ;
1165+ rfbCloseSocket (sock );
1166+ return RFB_INVALID_SOCKET ;
11701167 }
11711168 }
11721169 else
@@ -1186,21 +1183,21 @@ int CreateMulticastSocket(struct sockaddr_storage multicastSockAddr, int so_recv
11861183 errno = WSAGetLastError ();
11871184#endif
11881185 rfbClientErr ("CreateMulticastSocket: error joining IPv6 multicast group: %s\n" , strerror (errno ));
1189- close (sock );
1190- return -1 ;
1186+ rfbCloseSocket (sock );
1187+ return RFB_INVALID_SOCKET ;
11911188 }
11921189 }
11931190 else
11941191 {
11951192 rfbClientErr ("CreateMulticastSocket: neither IPv6 nor IPv6 specified" );
1196- close (sock );
1197- return -1 ;
1193+ rfbCloseSocket (sock );
1194+ return RFB_INVALID_SOCKET ;
11981195 }
11991196
12001197 /* this is important for ReadFromRFBServerMulticast() */
12011198 if (!SetNonBlocking (sock )) {
1202- close (sock );
1203- return -1 ;
1199+ rfbCloseSocket (sock );
1200+ return RFB_INVALID_SOCKET ;
12041201 }
12051202
12061203 return sock ;
0 commit comments