http-parser.c

Small C library to parse HTTP requests
Log | Files | Refs | README | LICENSE

commit af8fdd7447710492e741ae2cdede201e69345c4a
parent dda799a58d74b36a757698633701de4d1c0a746e
Author: finwo <finwo@pm.me>
Date:   Sun, 10 Nov 2019 01:27:24 +0100

Body loading is now only triggered on given content-length header

Diffstat:
Msrc/http-parser.c | 11++++-------
1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/http-parser.c b/src/http-parser.c @@ -124,16 +124,13 @@ void http_parser_request_data(struct http_parser_request *request, char *data, i request->body = buf; request->bodysize = newsize; - // GET/DELETE = start responding - if ( - (!strcmp(request->method, "GET")) || - (!strcmp(request->method, "DELETE")) - ) { + // No content-length = respond + if (http_parser_header_get(request, "content-length")) { + request->state = HTTP_PARSER_STATE_BODY; + } else { request->state = HTTP_PARSER_STATE_RESPONSE; - break; } - request->state = HTTP_PARSER_STATE_BODY; break; }