@@ -44,9 +44,8 @@ static bool readBytesWithTimeout(typename ServerType::ClientType& client, size_t
44
44
template <typename ServerType>
45
45
typename ESP8266WebServerTemplate<ServerType>::ClientFuture ESP8266WebServerTemplate<ServerType>::_parseRequest(ClientType& client) {
46
46
// Read the first line of HTTP request
47
- String req = client.readStringUntil ( ' \r ' );
47
+ String req = client.readStreamStringUntil ( " \r\n " );
48
48
DBGWS (" request: %s\n " , req.c_str ());
49
- client.readStringUntil (' \n ' );
50
49
// reset header value
51
50
for (int i = 0 ; i < _headerKeysCount; ++i) {
52
51
_currentHeaders[i].value .clear ();
@@ -122,8 +121,7 @@ typename ESP8266WebServerTemplate<ServerType>::ClientFuture ESP8266WebServerTemp
122
121
uint32_t contentLength = 0 ;
123
122
// parse headers
124
123
while (1 ){
125
- req = client.readStringUntil (' \r ' );
126
- client.readStringUntil (' \n ' );
124
+ req = client.readStreamStringUntil (" \r\n " );
127
125
if (req.isEmpty ()) break ; // no more headers
128
126
int headerDiv = req.indexOf (' :' );
129
127
if (headerDiv == -1 ){
@@ -198,8 +196,7 @@ typename ESP8266WebServerTemplate<ServerType>::ClientFuture ESP8266WebServerTemp
198
196
String headerValue;
199
197
// parse headers
200
198
while (1 ){
201
- req = client.readStringUntil (' \r ' );
202
- client.readStringUntil (' \n ' );
199
+ req = client.readStreamStringUntil (" \r\n " );
203
200
if (req.isEmpty ()) break ;// no moar headers
204
201
int headerDiv = req.indexOf (' :' );
205
202
if (headerDiv == -1 ){
@@ -351,11 +348,10 @@ bool ESP8266WebServerTemplate<ServerType>::_parseForm(ClientType& client, const
351
348
String line;
352
349
int retry = 0 ;
353
350
do {
354
- line = client.readStringUntil ( ' \r ' );
351
+ line = client.readStreamStringUntil ( " \r\n " );
355
352
++retry;
356
353
} while (line.length () == 0 && retry < 3 );
357
354
358
- client.readStringUntil (' \n ' );
359
355
// start reading the form
360
356
if (line == (" --" +boundary)){
361
357
std::unique_ptr<RequestArgument[]> postArgs (new RequestArgument[WEBSERVER_MAX_POST_ARGS]);
@@ -367,8 +363,7 @@ bool ESP8266WebServerTemplate<ServerType>::_parseForm(ClientType& client, const
367
363
String argFilename;
368
364
bool argIsFile = false ;
369
365
370
- line = client.readStringUntil (' \r ' );
371
- client.readStringUntil (' \n ' );
366
+ line = client.readStreamStringUntil (" \r\n " );
372
367
if (line.length () > 19 && line.substring (0 , 19 ).equalsIgnoreCase (F (" Content-Disposition" ))){
373
368
int nameStart = line.indexOf (' =' );
374
369
if (nameStart != -1 ){
@@ -388,19 +383,16 @@ bool ESP8266WebServerTemplate<ServerType>::_parseForm(ClientType& client, const
388
383
DBGWS (" PostArg Name: %s\n " , argName.c_str ());
389
384
using namespace mime ;
390
385
argType = FPSTR (mimeTable[txt].mimeType );
391
- line = client.readStringUntil (' \r ' );
392
- client.readStringUntil (' \n ' );
386
+ line = client.readStreamStringUntil (" \r\n " );
393
387
if (line.length () > 12 && line.substring (0 , 12 ).equalsIgnoreCase (FPSTR (Content_Type))){
394
388
argType = line.substring (line.indexOf (' :' )+2 );
395
389
// skip next line
396
- client.readStringUntil (' \r ' );
397
- client.readStringUntil (' \n ' );
390
+ client.readStringUntil (" \r\n " );
398
391
}
399
392
DBGWS (" PostArg Type: %s\n " , argType.c_str ());
400
393
if (!argIsFile){
401
394
while (1 ){
402
- line = client.readStringUntil (' \r ' );
403
- client.readStringUntil (' \n ' );
395
+ line = client.readStreamStringUntil (" \r\n " );
404
396
if (line.startsWith (" --" +boundary)) break ;
405
397
if (argValue.length () > 0 ) argValue += ' \n ' ;
406
398
argValue += line;
@@ -474,8 +466,7 @@ bool ESP8266WebServerTemplate<ServerType>::_parseForm(ClientType& client, const
474
466
_currentUpload->type .c_str (),
475
467
(int )_currentUpload->totalSize );
476
468
if (!client.connected ()) return _parseFormUploadAborted ();
477
- line = client.readStringUntil (' \r ' );
478
- client.readStringUntil (' \n ' );
469
+ line = client.readStreamStringUntil (" \r\n " );
479
470
if (line == " --" ) { // extra two dashes mean we reached the end of all form fields
480
471
DBGWS (" Done Parsing POST\n " );
481
472
break ;
0 commit comments