Skip to content

Commit

Permalink
Merge pull request #17 from Raidok/master
Browse files Browse the repository at this point in the history
POST request bugs
  • Loading branch information
unwiredben committed Feb 10, 2012
2 parents 5cf947d + 6a58a17 commit 0e68f1e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
17 changes: 14 additions & 3 deletions WebServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -810,6 +810,8 @@ bool WebServer::readPOSTparam(char *name, int nameLen,
{
// assume name is at current place in stream
int ch;
// to not to miss the last parameter
bool foundSomething = false;

// clear out name and value so they'll be NUL terminated
memset(name, 0, nameLen);
Expand All @@ -821,6 +823,7 @@ bool WebServer::readPOSTparam(char *name, int nameLen,

while ((ch = read()) != -1)
{
foundSomething = true;
if (ch == '+')
{
ch = ' ';
Expand Down Expand Up @@ -864,9 +867,17 @@ bool WebServer::readPOSTparam(char *name, int nameLen,
}
}

// if we get here, we hit the end-of-file, so POST is over and there
// are no more parameters
return false;
if (foundSomething)
{
// if we get here, we have one last parameter to serve
return true;
}
else
{
// if we get here, we hit the end-of-file, so POST is over and there
// are no more parameters
return false;
}
}

/* Retrieve a parameter that was encoded as part of the URL, stored in
Expand Down
2 changes: 1 addition & 1 deletion examples/Web_Parms/Web_Parms.ino
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ void parsedCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail
if (type == WebServer::POST)
{
server.printP(Post_params_begin);
while (server.nextURLparam(&url_tail, name, NAMELEN, value, VALUELEN))
while (server.readPOSTparam(name, NAMELEN, value, VALUELEN))
{
server.print(name);
server.printP(Parsed_item_separator);
Expand Down

0 comments on commit 0e68f1e

Please sign in to comment.