添加大小写处理

This commit is contained in:
aozhiwei 2018-12-29 16:27:06 +08:00
parent 58c82113e3
commit 29e74d78f8

View File

@ -33,6 +33,7 @@ const unsigned char WEBSOCKET_PAYLOAD_LEN_UINT16 = 126;
const unsigned char WEBSOCKET_PAYLOAD_LEN_UINT64 = 127; const unsigned char WEBSOCKET_PAYLOAD_LEN_UINT64 = 127;
const char* WEB_SOCKET_KEY = "Sec-WebSocket-Key: "; const char* WEB_SOCKET_KEY = "Sec-WebSocket-Key: ";
const char* WEB_SOCKET_KEY2 = "Sec-Websocket-Key: ";
namespace a8 namespace a8
{ {
@ -98,8 +99,7 @@ namespace a8
if (!pend) { if (!pend) {
return; return;
} }
char* p1 = strstr(buf + offset, WEB_SOCKET_KEY); if (strstr(buf + offset, WEB_SOCKET_KEY) || strstr(buf + offset, WEB_SOCKET_KEY2)) {
if (p1) {
ProcessWsHandShake(buf, offset, buflen); ProcessWsHandShake(buf, offset, buflen);
} else { } else {
ProcessHttpHandShake(buf, offset, buflen); ProcessHttpHandShake(buf, offset, buflen);
@ -113,8 +113,13 @@ namespace a8
return; return;
} }
std::string server_key; std::string server_key;
const char* key = WEB_SOCKET_KEY;
{ {
char* p1 = strstr(buf + offset, WEB_SOCKET_KEY); char* p1 = strstr(buf + offset, WEB_SOCKET_KEY);
if (!p1) {
p1 = strstr(buf + offset, WEB_SOCKET_KEY2);
key = WEB_SOCKET_KEY2;
}
if (p1) { if (p1) {
p1 += strlen(WEB_SOCKET_KEY); p1 += strlen(WEB_SOCKET_KEY);
char* p2 = strstr(p1 , "\r\n"); char* p2 = strstr(p1 , "\r\n");
@ -131,7 +136,7 @@ namespace a8
std::string response = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" std::string response = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n"
"Upgrade: websocket\r\n" "Upgrade: websocket\r\n"
"Connection: Upgrade\r\n" "Connection: Upgrade\r\n"
"Sec-WebSocket-Accept: " + hash_data + "\r\n" + + key + hash_data + "\r\n" +
"\r\n"; "\r\n";
SendBuff(response.data(), response.size()); SendBuff(response.data(), response.size());
handshook_ = true; handshook_ = true;