|
@ -936,6 +936,7 @@ size_t http_parser_execute (http_parser *parser, |
|
|
} else if (parser->index == 2 && ch == 'P') { |
|
|
} else if (parser->index == 2 && ch == 'P') { |
|
|
parser->method = HTTP_COPY; |
|
|
parser->method = HTTP_COPY; |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
goto error; |
|
|
goto error; |
|
|
} |
|
|
} |
|
|
} else if (parser->method == HTTP_MKCOL) { |
|
|
} else if (parser->method == HTTP_MKCOL) { |
|
@ -948,12 +949,14 @@ size_t http_parser_execute (http_parser *parser, |
|
|
} else if (parser->index == 2 && ch == 'A') { |
|
|
} else if (parser->index == 2 && ch == 'A') { |
|
|
parser->method = HTTP_MKACTIVITY; |
|
|
parser->method = HTTP_MKACTIVITY; |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
goto error; |
|
|
goto error; |
|
|
} |
|
|
} |
|
|
} else if (parser->method == HTTP_SUBSCRIBE) { |
|
|
} else if (parser->method == HTTP_SUBSCRIBE) { |
|
|
if (parser->index == 1 && ch == 'E') { |
|
|
if (parser->index == 1 && ch == 'E') { |
|
|
parser->method = HTTP_SEARCH; |
|
|
parser->method = HTTP_SEARCH; |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
goto error; |
|
|
goto error; |
|
|
} |
|
|
} |
|
|
} else if (parser->index == 1 && parser->method == HTTP_POST) { |
|
|
} else if (parser->index == 1 && parser->method == HTTP_POST) { |
|
@ -964,13 +967,27 @@ size_t http_parser_execute (http_parser *parser, |
|
|
} else if (ch == 'A') { |
|
|
} else if (ch == 'A') { |
|
|
parser->method = HTTP_PATCH; |
|
|
parser->method = HTTP_PATCH; |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
goto error; |
|
|
goto error; |
|
|
} |
|
|
} |
|
|
} else if (parser->index == 2) { |
|
|
} else if (parser->index == 2) { |
|
|
if (parser->method == HTTP_PUT) { |
|
|
if (parser->method == HTTP_PUT) { |
|
|
if (ch == 'R') parser->method = HTTP_PURGE; |
|
|
if (ch == 'R') { |
|
|
|
|
|
parser->method = HTTP_PURGE; |
|
|
|
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
|
|
|
goto error; |
|
|
|
|
|
} |
|
|
} else if (parser->method == HTTP_UNLOCK) { |
|
|
} else if (parser->method == HTTP_UNLOCK) { |
|
|
if (ch == 'S') parser->method = HTTP_UNSUBSCRIBE; |
|
|
if (ch == 'S') { |
|
|
|
|
|
parser->method = HTTP_UNSUBSCRIBE; |
|
|
|
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
|
|
|
goto error; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
SET_ERRNO(HPE_INVALID_METHOD); |
|
|
|
|
|
goto error; |
|
|
} |
|
|
} |
|
|
} else if (parser->index == 4 && parser->method == HTTP_PROPFIND && ch == 'P') { |
|
|
} else if (parser->index == 4 && parser->method == HTTP_PROPFIND && ch == 'P') { |
|
|
parser->method = HTTP_PROPPATCH; |
|
|
parser->method = HTTP_PROPPATCH; |
|
|