Fixes Firefox WebSocket upgrade request in WebSocket engine

This commit is contained in:
sab24 2021-01-30 16:23:48 +01:00
parent 92282785ed
commit 15408f5609

View File

@ -453,9 +453,18 @@ bool zmq::ws_engine_t::server_handshake ()
if (strcasecmp ("upgrade", _header_name) == 0) if (strcasecmp ("upgrade", _header_name) == 0)
_header_upgrade_websocket = _header_upgrade_websocket =
strcasecmp ("websocket", _header_value) == 0; strcasecmp ("websocket", _header_value) == 0;
else if (strcasecmp ("connection", _header_name) == 0) else if (strcasecmp ("connection", _header_name) == 0){
_header_connection_upgrade = char *element = strtok (_header_value, ",");
strcasecmp ("upgrade", _header_value) == 0; while (element != NULL){
while (*element == ' ')
element++;
if (strcasecmp ("upgrade", element) == 0){
_header_connection_upgrade = true;
break;
}
element = strtok (NULL, ",");
}
}
else if (strcasecmp ("Sec-WebSocket-Key", _header_name) else if (strcasecmp ("Sec-WebSocket-Key", _header_name)
== 0) == 0)
strcpy_s (_websocket_key, _header_value); strcpy_s (_websocket_key, _header_value);