Skip to content

Commit a6d8253

Browse files
author
Me No Dev
committed
fix plain post slowdown
1 parent 1cd50e4 commit a6d8253

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

libraries/ESP8266WebServer/src/Parsing.cpp

+9-7
Original file line numberDiff line numberDiff line change
@@ -108,20 +108,22 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) {
108108

109109
if (!isForm){
110110
if (searchStr != "") searchStr += '&';
111-
String bodyLine = client.readStringUntil('\r');
111+
size_t plainLen = client.available();
112+
char *plainBuf = (char*)malloc(plainLen+1);
113+
client.readBytes(plainBuf, plainLen);
114+
plainBuf[plainLen] = '\0';
112115
#ifdef DEBUG
113116
DEBUG_OUTPUT.print("Plain: ");
114-
DEBUG_OUTPUT.println(bodyLine);
117+
DEBUG_OUTPUT.println(plainBuf);
115118
#endif
116-
if(bodyLine.startsWith("{") || bodyLine.startsWith("[") || bodyLine.indexOf('=') == -1){
119+
if(plainBuf[0] == '{' || plainBuf[0] == '[' || strstr(plainBuf, "=") == NULL){
117120
//plain post json or other data
118121
searchStr += "plain=";
119-
searchStr += bodyLine;
120-
searchStr += client.readString();
122+
searchStr += plainBuf;
121123
} else {
122-
searchStr += bodyLine;
123-
client.readStringUntil('\n');
124+
searchStr += plainBuf;
124125
}
126+
free(plainBuf);
125127
}
126128
_parseArguments(searchStr);
127129
if (isForm){

0 commit comments

Comments
 (0)