mirror of
https://github.com/Links2004/arduinoWebSockets.git
synced 2025-07-15 00:06:30 +02:00
@ -317,28 +317,30 @@ void WebSocketsClient::handleHeader(WSclient_t * client) {
|
|||||||
if(headerLine.startsWith("HTTP/1.")) {
|
if(headerLine.startsWith("HTTP/1.")) {
|
||||||
// "HTTP/1.1 101 Switching Protocols"
|
// "HTTP/1.1 101 Switching Protocols"
|
||||||
client->cCode = headerLine.substring(9, headerLine.indexOf(' ', 9)).toInt();
|
client->cCode = headerLine.substring(9, headerLine.indexOf(' ', 9)).toInt();
|
||||||
} else if(headerLine == "Connection: Upgrade") {
|
} else if(headerLine.indexOf(':')) {
|
||||||
client->cIsUpgrade = true;
|
String headerName = headerLine.substring(0, headerLine.indexOf(':'));
|
||||||
} else if(headerLine.startsWith("Upgrade: ")) {
|
String headerValue = headerLine.substring(headerLine.indexOf(':') + 2);
|
||||||
// 9 = lenght of "Upgrade: "
|
|
||||||
String low = headerLine.substring(9);
|
if(headerName.equalsIgnoreCase("Connection")) {
|
||||||
low.toLowerCase();
|
if(headerValue.indexOf("Upgrade") >= 0) {
|
||||||
if(low == "websocket") {
|
client->cIsUpgrade = true;
|
||||||
client->cIsWebsocket = true;
|
}
|
||||||
|
} else if(headerName.equalsIgnoreCase("Upgrade")) {
|
||||||
|
if(headerValue.equalsIgnoreCase("websocket")) {
|
||||||
|
client->cIsWebsocket = true;
|
||||||
|
}
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Accept")) {
|
||||||
|
client->cAccept = headerValue;
|
||||||
|
client->cAccept.trim(); // see rfc6455
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Protocol")) {
|
||||||
|
client->cProtocol = headerValue;
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Extensions")) {
|
||||||
|
client->cExtensions = headerValue;
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Version")) {
|
||||||
|
client->cVersion = headerValue.toInt();
|
||||||
}
|
}
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Accept: ")) {
|
} else {
|
||||||
// 22 = lenght of "Sec-WebSocket-Accept: "
|
DEBUG_WEBSOCKETS("[WS-Client][handleHeader] Header error (%s)\n", headerLine.c_str());
|
||||||
client->cAccept = headerLine.substring(22);
|
|
||||||
client->cAccept.trim(); // see rfc6455
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Protocol: ")) {
|
|
||||||
// 24 = lenght of "Sec-WebSocket-Protocol: "
|
|
||||||
client->cProtocol = headerLine.substring(24);
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Extensions: ")) {
|
|
||||||
// 26 = lenght of "Sec-WebSocket-Extensions: "
|
|
||||||
client->cExtensions = headerLine.substring(26);
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Version: ")) {
|
|
||||||
// 23 = lenght of "Sec-WebSocket-Version: "
|
|
||||||
client->cVersion = headerLine.substring(23).toInt();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -402,31 +402,30 @@ void WebSocketsServer::handleHeader(WSclient_t * client) {
|
|||||||
if(headerLine.startsWith("GET ")) {
|
if(headerLine.startsWith("GET ")) {
|
||||||
// cut URL out
|
// cut URL out
|
||||||
client->cUrl = headerLine.substring(4, headerLine.indexOf(' ', 4));
|
client->cUrl = headerLine.substring(4, headerLine.indexOf(' ', 4));
|
||||||
} else if(headerLine.startsWith("Connection: ")) {
|
} else if(headerLine.indexOf(':')) {
|
||||||
// 12 = lenght of "Connection: "
|
String headerName = headerLine.substring(0, headerLine.indexOf(':'));
|
||||||
if(headerLine.indexOf("Upgrade", 12)) {
|
String headerValue = headerLine.substring(headerLine.indexOf(':') + 2);
|
||||||
client->cIsUpgrade = true;
|
|
||||||
|
if(headerName.equalsIgnoreCase("Connection")) {
|
||||||
|
if(headerValue.indexOf("Upgrade") >= 0) {
|
||||||
|
client->cIsUpgrade = true;
|
||||||
|
}
|
||||||
|
} else if(headerName.equalsIgnoreCase("Upgrade")) {
|
||||||
|
if(headerValue.equalsIgnoreCase("websocket")) {
|
||||||
|
client->cIsWebsocket = true;
|
||||||
|
}
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Version")) {
|
||||||
|
client->cVersion = headerValue.toInt();
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Key")) {
|
||||||
|
client->cKey = headerValue;
|
||||||
|
client->cKey.trim(); // see rfc6455
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Protocol")) {
|
||||||
|
client->cProtocol = headerValue;
|
||||||
|
} else if(headerName.equalsIgnoreCase("Sec-WebSocket-Extensions")) {
|
||||||
|
client->cExtensions = headerValue;
|
||||||
}
|
}
|
||||||
} else if(headerLine.startsWith("Upgrade: ")) {
|
} else {
|
||||||
// 9 = lenght of "Upgrade: "
|
DEBUG_WEBSOCKETS("[WS-Client][handleHeader] Header error (%s)\n", headerLine.c_str());
|
||||||
String low = headerLine.substring(9);
|
|
||||||
low.toLowerCase();
|
|
||||||
if(low == "websocket") {
|
|
||||||
client->cIsWebsocket = true;
|
|
||||||
}
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Version: ")) {
|
|
||||||
// 23 = lenght of "Sec-WebSocket-Version: "
|
|
||||||
client->cVersion = headerLine.substring(23).toInt();
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Key: ")) {
|
|
||||||
// 19 = lenght of "Sec-WebSocket-Key: "
|
|
||||||
client->cKey = headerLine.substring(19);
|
|
||||||
client->cKey.trim(); // see rfc6455
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Protocol: ")) {
|
|
||||||
// 24 = lenght of "Sec-WebSocket-Protocol: "
|
|
||||||
client->cProtocol = headerLine.substring(24);
|
|
||||||
} else if(headerLine.startsWith("Sec-WebSocket-Extensions: ")) {
|
|
||||||
// 26 = lenght of "Sec-WebSocket-Extensions: "
|
|
||||||
client->cExtensions = headerLine.substring(26);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user