Skip to content

Commit 35c03a5

Browse files
committed
libvncclient: ensure WaitForMessage() says 1 in case of buffered data
Previously, WaitForMessage() would only check the socket for new data using select(), even when ReadFromRFBServer had already buffered unprocessed data. This could cause unnecessary timeouts and delays in message processing.
1 parent 56e08b6 commit 35c03a5

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/libvncclient/sockets.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,12 @@ int WaitForMessage(rfbClient* client,unsigned int usecs)
976976
return 1;
977977
}
978978

979+
/* Check if we have buffered data available */
980+
if (client->buffered > 0) {
981+
client->serverMsg = TRUE;
982+
return 1;
983+
}
984+
979985
client->serverMsg = client->serverMsgMulticast = FALSE;
980986

981987
timeout.tv_sec=(usecs/1000000);

0 commit comments

Comments
 (0)