diff --git a/http_parser.c b/http_parser.c index ebfccbb..ba8b824 100644 --- a/http_parser.c +++ b/http_parser.c @@ -61,7 +61,7 @@ do { \ FOR##_mark = p; \ } while (0) -#define CALLBACK_NOCLEAR(FOR) \ +#define CALLBACK(FOR) \ do { \ if (FOR##_mark) { \ if (settings->on_##FOR) { \ @@ -73,17 +73,11 @@ do { \ return (p - data); \ } \ } \ + FOR##_mark = NULL; \ } \ } while (0) -#define CALLBACK(FOR) \ -do { \ - CALLBACK_NOCLEAR(FOR); \ - FOR##_mark = NULL; \ -} while (0) - - #define PROXY_CONNECTION "proxy-connection" #define CONNECTION "connection" #define CONTENT_LENGTH "content-length" @@ -1737,12 +1731,12 @@ size_t http_parser_execute (http_parser *parser, } } - CALLBACK_NOCLEAR(header_field); - CALLBACK_NOCLEAR(header_value); - CALLBACK_NOCLEAR(fragment); - CALLBACK_NOCLEAR(query_string); - CALLBACK_NOCLEAR(path); - CALLBACK_NOCLEAR(url); + CALLBACK(header_field); + CALLBACK(header_value); + CALLBACK(fragment); + CALLBACK(query_string); + CALLBACK(path); + CALLBACK(url); parser->state = state; parser->header_state = header_state;