|
|
@ -137,6 +137,7 @@ static const char *method_strings[] =
|
|
|
|
, "MOVE"
|
|
|
|
, "MOVE"
|
|
|
|
, "PROPFIND"
|
|
|
|
, "PROPFIND"
|
|
|
|
, "PROPPATCH"
|
|
|
|
, "PROPPATCH"
|
|
|
|
|
|
|
|
, "SEARCH"
|
|
|
|
, "UNLOCK"
|
|
|
|
, "UNLOCK"
|
|
|
|
, "REPORT"
|
|
|
|
, "REPORT"
|
|
|
|
, "MKACTIVITY"
|
|
|
|
, "MKACTIVITY"
|
|
|
@ -918,7 +919,7 @@ size_t http_parser_execute (http_parser *parser,
|
|
|
|
/* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE */
|
|
|
|
/* or PROPFIND|PROPPATCH|PUT|PATCH|PURGE */
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 'R': parser->method = HTTP_REPORT; break;
|
|
|
|
case 'R': parser->method = HTTP_REPORT; break;
|
|
|
|
case 'S': parser->method = HTTP_SUBSCRIBE; break;
|
|
|
|
case 'S': parser->method = HTTP_SUBSCRIBE; /* or SEARCH */ break;
|
|
|
|
case 'T': parser->method = HTTP_TRACE; break;
|
|
|
|
case 'T': parser->method = HTTP_TRACE; break;
|
|
|
|
case 'U': parser->method = HTTP_UNLOCK; /* or UNSUBSCRIBE */ break;
|
|
|
|
case 'U': parser->method = HTTP_UNLOCK; /* or UNSUBSCRIBE */ break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
@ -965,6 +966,12 @@ size_t http_parser_execute (http_parser *parser,
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
goto error;
|
|
|
|
goto error;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if (parser->method == HTTP_SUBSCRIBE) {
|
|
|
|
|
|
|
|
if (parser->index == 1 && ch == 'E') {
|
|
|
|
|
|
|
|
parser->method = HTTP_SEARCH;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
goto error;
|
|
|
|
|
|
|
|
}
|
|
|
|
} else if (parser->index == 1 && parser->method == HTTP_POST) {
|
|
|
|
} else if (parser->index == 1 && parser->method == HTTP_POST) {
|
|
|
|
if (ch == 'R') {
|
|
|
|
if (ch == 'R') {
|
|
|
|
parser->method = HTTP_PROPFIND; /* or HTTP_PROPPATCH */
|
|
|
|
parser->method = HTTP_PROPFIND; /* or HTTP_PROPPATCH */
|
|
|
|