Upgrade http-parser

pull/22966/head
Ryan Dahl 2011-02-04 16:00:08 -08:00
parent f99fc29e62
commit e42c74e141
2 changed files with 23 additions and 4 deletions

View File

@ -331,10 +331,20 @@ size_t http_parser_execute (http_parser *parser,
uint64_t nread = parser->nread;
if (len == 0) {
if (state == s_body_identity_eof) {
CALLBACK2(message_complete);
switch (state) {
case s_body_identity_eof:
CALLBACK2(message_complete);
return 0;
case s_dead:
case s_start_req_or_res:
case s_start_res:
case s_start_req:
return 0;
default:
return 1; // error
}
return 0;
}
/* technically we could combine all of these (except for url_mark) into one
@ -1384,6 +1394,7 @@ size_t http_parser_execute (http_parser *parser,
break;
default:
parser->state = state;
return p - data; /* Error */
}
}

View File

@ -1735,14 +1735,22 @@ main (void)
/// REQUESTS
test_simple("hello world", 0);
test_simple("GET / HTP/1.1\r\n\r\n", 0);
test_simple("ASDF / HTTP/1.1\r\n\r\n", 0);
test_simple("PROPPATCHA / HTTP/1.1\r\n\r\n", 0);
test_simple("GETA / HTTP/1.1\r\n\r\n", 0);
// Well-formed but incomplete
test_simple("GET / HTTP/1.1\r\n"
"Content-Type: text/plain\r\n"
"Content-Length: 6\r\n"
"\r\n"
"fooba",
0);
static const char *all_methods[] = {
"DELETE",
"GET",