Skip to content

Commit 28b7619

Browse files
committed
allow any "case" for Upgrade
RFC6455: An |Upgrade| header field containing the value "websocket", treated as an ASCII case-insensitive value.
1 parent f118a13 commit 28b7619

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

src/WebSocketsClient.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,10 +319,13 @@ void WebSocketsClient::handleHeader(WSclient_t * client) {
319319
client->cCode = headerLine.substring(9, headerLine.indexOf(' ', 9)).toInt();
320320
} else if(headerLine == "Connection: Upgrade") {
321321
client->cIsUpgrade = true;
322-
} else if(headerLine == "Upgrade: websocket") {
323-
client->cIsWebsocket = true;
324-
} else if(headerLine == "Upgrade: WebSocket") {
325-
client->cIsWebsocket = true;
322+
} else if(headerLine.startsWith("Upgrade: ")) {
323+
// 9 = lenght of "Upgrade: "
324+
String low = headerLine.substring(9);
325+
low.toLowerCase();
326+
if(low == "websocket") {
327+
client->cIsWebsocket = true;
328+
}
326329
} else if(headerLine.startsWith("Sec-WebSocket-Accept: ")) {
327330
// 22 = lenght of "Sec-WebSocket-Accept: "
328331
client->cAccept = headerLine.substring(22);

src/WebSocketsServer.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -404,10 +404,13 @@ void WebSocketsServer::handleHeader(WSclient_t * client) {
404404
client->cUrl = headerLine.substring(4, headerLine.indexOf(' ', 4));
405405
} else if(headerLine == "Connection: Upgrade") {
406406
client->cIsUpgrade = true;
407-
} else if(headerLine == "Upgrade: websocket") {
408-
client->cIsWebsocket = true;
409-
} else if(headerLine == "Upgrade: WebSocket") {
410-
client->cIsWebsocket = true;
407+
} else if(headerLine.startsWith("Upgrade: ")) {
408+
// 9 = lenght of "Upgrade: "
409+
String low = headerLine.substring(9);
410+
low.toLowerCase();
411+
if(low == "websocket") {
412+
client->cIsWebsocket = true;
413+
}
411414
} else if(headerLine.startsWith("Sec-WebSocket-Version: ")) {
412415
// 23 = lenght of "Sec-WebSocket-Version: "
413416
client->cVersion = headerLine.substring(23).toInt();

0 commit comments

Comments
 (0)