Fix checks for socket values, 0 is a legal value.

To make this work, we also have to initialize sockets
to a default value of -1.

Also close a client listen socket if it's open.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
pull/1/head
Christian Beier 15 years ago committed by Johannes Schindelin
parent d4c43c1b73
commit 9ed410668c

@ -127,7 +127,7 @@ listenForIncomingConnectionsNoFork(rfbClient* client, int timeout)
client->listenSpecified = TRUE;
if (! client->listenSock)
if (client->listenSock < 0)
{
client->listenSock = ListenAtTcpPort(client->listenPort);

@ -388,7 +388,7 @@ ConnectToRFBServer(rfbClient* client,const char *hostname, int port)
fclose(rec->file);
return FALSE;
}
client->sock = 0;
client->sock = -1;
return TRUE;
}

@ -190,7 +190,8 @@ rfbClient* rfbGetClient(int bitsPerSample,int samplesPerPixel,
#ifdef LIBVNCSERVER_WITH_CLIENT_TLS
client->tlsSession = NULL;
#endif
client->sock = -1;
client->listenSock = -1;
return client;
}
@ -334,8 +335,10 @@ void rfbClientCleanup(rfbClient* client) {
#endif
FreeTLS(client);
if (client->sock > 0)
if (client->sock >= 0)
close(client->sock);
if (client->listenSock >= 0)
close(client->listenSock);
free(client->desktopName);
free(client->serverHost);
free(client);

@ -485,7 +485,7 @@ rfbClientConnectionGone(rfbClientPtr cl)
if (cl->next)
cl->next->prev = cl->prev;
if(cl->sock>0)
if(cl->sock>=0)
close(cl->sock);
if (cl->scaledScreen!=NULL)

Loading…
Cancel
Save