@@ -378,6 +378,15 @@ String ESP8266WebServer::arg(const char* name) {
378
378
return String ();
379
379
}
380
380
381
+ String ESP8266WebServer::arg_P (PGM_P name) {
382
+ String argname = name; // Copy to RAM, avoid loop search compare from flash
383
+ for (int i = 0 ; i < _currentArgCount; ++i) {
384
+ if ( _currentArgs[i].key == argname )
385
+ return _currentArgs[i].value ;
386
+ }
387
+ return String ();
388
+ }
389
+
381
390
String ESP8266WebServer::arg (int i) {
382
391
if (i < _currentArgCount)
383
392
return _currentArgs[i].value ;
@@ -402,6 +411,15 @@ bool ESP8266WebServer::hasArg(const char* name) {
402
411
return false ;
403
412
}
404
413
414
+ bool ESP8266WebServer::hasArg_P (PGM_P name) {
415
+ String argname = name; // Copy to RAM, avoid loop search compare from flash
416
+ for (int i = 0 ; i < _currentArgCount; ++i) {
417
+ if ( _currentArgs[i].key == argname )
418
+ return true ;
419
+ }
420
+ return false ;
421
+ }
422
+
405
423
String ESP8266WebServer::header (const char * name) {
406
424
for (int i = 0 ; i < _headerKeysCount; ++i) {
407
425
if (_currentHeaders[i].key == name)
@@ -445,6 +463,16 @@ bool ESP8266WebServer::hasHeader(const char* name) {
445
463
return false ;
446
464
}
447
465
466
+ bool ESP8266WebServer::hasHeader_P (PGM_P name) {
467
+ String argname = name; // Copy to RAM, avoid loop search compare from flash
468
+ for (int i = 0 ; i < _headerKeysCount; ++i) {
469
+ if ((_currentHeaders[i].key == argname ) && (_currentHeaders[i].value .length () > 0 ))
470
+ return true ;
471
+ }
472
+ return false ;
473
+ }
474
+
475
+
448
476
String ESP8266WebServer::hostHeader () {
449
477
return _hostHeader;
450
478
}
0 commit comments