diff --git a/common/network/websocket.c b/common/network/websocket.c index 3d3111d..47ac11d 100644 --- a/common/network/websocket.c +++ b/common/network/websocket.c @@ -583,7 +583,7 @@ int parse_handshake(ws_ctx_t *ws_ctx, char *handshake) { headers->host[end-start] = '\0'; headers->origin[0] = '\0'; - start = strstr(handshake, "\r\nOrigin: "); + start = strcasestr(handshake, "\r\nOrigin: "); if (start) { start += 10; } else { diff --git a/common/rfb/VNCServerST.cxx b/common/rfb/VNCServerST.cxx index fd13cf3..a564021 100644 --- a/common/rfb/VNCServerST.cxx +++ b/common/rfb/VNCServerST.cxx @@ -273,6 +273,11 @@ void VNCServerST::removeSocket(network::Socket* sock) { std::list::iterator ci; for (ci = clients.begin(); ci != clients.end(); ci++) { if ((*ci)->getSock() == sock) { + + if (clipboardClient == *ci) + handleClipboardAnnounce(*ci, false); + clipboardRequestors.remove(*ci); + // - Delete the per-Socket resources delete *ci;