@@ -1223,14 +1223,14 @@ void AsyncWebSocket::binaryAll(const __FlashStringHelper *message, size_t len){
1223
1223
}
1224
1224
}
1225
1225
1226
- const char * WS_STR_CONNECTION = " Connection" ;
1227
- const char * WS_STR_UPGRADE = " Upgrade" ;
1228
- const char * WS_STR_ORIGIN = " Origin" ;
1229
- const char * WS_STR_VERSION = " Sec-WebSocket-Version" ;
1230
- const char * WS_STR_KEY = " Sec-WebSocket-Key" ;
1231
- const char * WS_STR_PROTOCOL = " Sec-WebSocket-Protocol" ;
1232
- const char * WS_STR_ACCEPT = " Sec-WebSocket-Accept" ;
1233
- const char * WS_STR_UUID = " 258EAFA5-E914-47DA-95CA-C5AB0DC85B11" ;
1226
+ const char WS_STR_CONNECTION[] PROGMEM = " Connection" ;
1227
+ const char WS_STR_UPGRADE[] PROGMEM = " Upgrade" ;
1228
+ const char WS_STR_ORIGIN[] PROGMEM = " Origin" ;
1229
+ const char WS_STR_VERSION[] PROGMEM = " Sec-WebSocket-Version" ;
1230
+ const char WS_STR_KEY[] PROGMEM = " Sec-WebSocket-Key" ;
1231
+ const char WS_STR_PROTOCOL[] PROGMEM = " Sec-WebSocket-Protocol" ;
1232
+ const char WS_STR_ACCEPT[] PROGMEM = " Sec-WebSocket-Accept" ;
1233
+ const char WS_STR_UUID[] PROGMEM = " 258EAFA5-E914-47DA-95CA-C5AB0DC85B11" ;
1234
1234
1235
1235
bool AsyncWebSocket::canHandle (AsyncWebServerRequest *request){
1236
1236
if (!_enabled)
@@ -1239,36 +1239,36 @@ bool AsyncWebSocket::canHandle(AsyncWebServerRequest *request){
1239
1239
if (request->method () != HTTP_GET || !request->url ().equals (_url) || !request->isExpectedRequestedConnType (RCT_WS))
1240
1240
return false ;
1241
1241
1242
- request->addInterestingHeader (WS_STR_CONNECTION);
1243
- request->addInterestingHeader (WS_STR_UPGRADE);
1244
- request->addInterestingHeader (WS_STR_ORIGIN);
1245
- request->addInterestingHeader (WS_STR_VERSION);
1246
- request->addInterestingHeader (WS_STR_KEY);
1247
- request->addInterestingHeader (WS_STR_PROTOCOL);
1242
+ request->addInterestingHeader (FPSTR ( WS_STR_CONNECTION) );
1243
+ request->addInterestingHeader (FPSTR ( WS_STR_UPGRADE) );
1244
+ request->addInterestingHeader (FPSTR ( WS_STR_ORIGIN) );
1245
+ request->addInterestingHeader (FPSTR ( WS_STR_VERSION) );
1246
+ request->addInterestingHeader (FPSTR ( WS_STR_KEY) );
1247
+ request->addInterestingHeader (FPSTR ( WS_STR_PROTOCOL) );
1248
1248
return true ;
1249
1249
}
1250
1250
1251
1251
void AsyncWebSocket::handleRequest (AsyncWebServerRequest *request){
1252
- if (!request->hasHeader (WS_STR_VERSION) || !request->hasHeader (WS_STR_KEY)){
1252
+ if (!request->hasHeader (FPSTR ( WS_STR_VERSION)) || !request->hasHeader (FPSTR ( WS_STR_KEY) )){
1253
1253
request->send (400 );
1254
1254
return ;
1255
1255
}
1256
1256
if ((_username != " " && _password != " " ) && !request->authenticate (_username.c_str (), _password.c_str ())){
1257
1257
return request->requestAuthentication ();
1258
1258
}
1259
- AsyncWebHeader* version = request->getHeader (WS_STR_VERSION);
1259
+ AsyncWebHeader* version = request->getHeader (FPSTR ( WS_STR_VERSION) );
1260
1260
if (version->value ().toInt () != 13 ){
1261
1261
AsyncWebServerResponse *response = request->beginResponse (400 );
1262
- response->addHeader (WS_STR_VERSION," 13" );
1262
+ response->addHeader (FPSTR ( WS_STR_VERSION) ," 13" );
1263
1263
request->send (response);
1264
1264
return ;
1265
1265
}
1266
- AsyncWebHeader* key = request->getHeader (WS_STR_KEY);
1266
+ AsyncWebHeader* key = request->getHeader (FPSTR ( WS_STR_KEY) );
1267
1267
AsyncWebServerResponse *response = new AsyncWebSocketResponse (key->value (), this );
1268
- if (request->hasHeader (WS_STR_PROTOCOL)){
1269
- AsyncWebHeader* protocol = request->getHeader (WS_STR_PROTOCOL);
1268
+ if (request->hasHeader (FPSTR ( WS_STR_PROTOCOL) )){
1269
+ AsyncWebHeader* protocol = request->getHeader (FPSTR ( WS_STR_PROTOCOL) );
1270
1270
// ToDo: check protocol
1271
- response->addHeader (WS_STR_PROTOCOL, protocol->value ());
1271
+ response->addHeader (FPSTR ( WS_STR_PROTOCOL) , protocol->value ());
1272
1272
}
1273
1273
request->send (response);
1274
1274
}
@@ -1324,9 +1324,9 @@ AsyncWebSocketResponse::AsyncWebSocketResponse(const String& key, AsyncWebSocket
1324
1324
char buffer[33 ];
1325
1325
1326
1326
#ifdef ESP8266
1327
- sha1 (key + WS_STR_UUID, hash);
1327
+ sha1 (key + FPSTR ( WS_STR_UUID) , hash);
1328
1328
#else
1329
- (String&)key += WS_STR_UUID;
1329
+ (String&)key += FPSTR ( WS_STR_UUID) ;
1330
1330
mbedtls_sha1_context ctx;
1331
1331
mbedtls_sha1_init (&ctx);
1332
1332
mbedtls_sha1_starts_ret (&ctx);
@@ -1338,9 +1338,9 @@ AsyncWebSocketResponse::AsyncWebSocketResponse(const String& key, AsyncWebSocket
1338
1338
base64_init_encodestate (&_state);
1339
1339
int len = base64_encode_block ((const char *) hash, 20 , buffer, &_state);
1340
1340
len = base64_encode_blockend ((buffer + len), &_state);
1341
- addHeader (WS_STR_CONNECTION, WS_STR_UPGRADE);
1342
- addHeader (WS_STR_UPGRADE, " websocket" );
1343
- addHeader (WS_STR_ACCEPT,buffer);
1341
+ addHeader (FPSTR ( WS_STR_CONNECTION), FPSTR ( WS_STR_UPGRADE) );
1342
+ addHeader (FPSTR ( WS_STR_UPGRADE), F ( " websocket" ) );
1343
+ addHeader (FPSTR ( WS_STR_ACCEPT) ,buffer);
1344
1344
}
1345
1345
1346
1346
void AsyncWebSocketResponse::_respond (AsyncWebServerRequest *request){
0 commit comments