|
|
@ -93,6 +93,8 @@ static const char *method_strings[] =
|
|
|
|
, "MKACTIVITY"
|
|
|
|
, "MKACTIVITY"
|
|
|
|
, "CHECKOUT"
|
|
|
|
, "CHECKOUT"
|
|
|
|
, "MERGE"
|
|
|
|
, "MERGE"
|
|
|
|
|
|
|
|
, "M-SEARCH"
|
|
|
|
|
|
|
|
, "NOTIFY"
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -575,7 +577,8 @@ size_t http_parser_execute (http_parser *parser,
|
|
|
|
case 'G': parser->method = HTTP_GET; break;
|
|
|
|
case 'G': parser->method = HTTP_GET; break;
|
|
|
|
case 'H': parser->method = HTTP_HEAD; break;
|
|
|
|
case 'H': parser->method = HTTP_HEAD; break;
|
|
|
|
case 'L': parser->method = HTTP_LOCK; break;
|
|
|
|
case 'L': parser->method = HTTP_LOCK; break;
|
|
|
|
case 'M': parser->method = HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE */ break;
|
|
|
|
case 'M': parser->method = HTTP_MKCOL; /* or MOVE, MKACTIVITY, MERGE, M-SEARCH */ break;
|
|
|
|
|
|
|
|
case 'N': parser->method = HTTP_NOTIFY; break;
|
|
|
|
case 'O': parser->method = HTTP_OPTIONS; break;
|
|
|
|
case 'O': parser->method = HTTP_OPTIONS; break;
|
|
|
|
case 'P': parser->method = HTTP_POST; /* or PROPFIND or PROPPATCH or PUT */ break;
|
|
|
|
case 'P': parser->method = HTTP_POST; /* or PROPFIND or PROPPATCH or PUT */ break;
|
|
|
|
case 'R': parser->method = HTTP_REPORT; break;
|
|
|
|
case 'R': parser->method = HTTP_REPORT; break;
|
|
|
@ -608,6 +611,8 @@ size_t http_parser_execute (http_parser *parser,
|
|
|
|
parser->method = HTTP_MOVE;
|
|
|
|
parser->method = HTTP_MOVE;
|
|
|
|
} else if (index == 1 && ch == 'E') {
|
|
|
|
} else if (index == 1 && ch == 'E') {
|
|
|
|
parser->method = HTTP_MERGE;
|
|
|
|
parser->method = HTTP_MERGE;
|
|
|
|
|
|
|
|
} else if (index == 1 && ch == '-') {
|
|
|
|
|
|
|
|
parser->method = HTTP_MSEARCH;
|
|
|
|
} else if (index == 2 && ch == 'A') {
|
|
|
|
} else if (index == 2 && ch == 'A') {
|
|
|
|
parser->method = HTTP_MKACTIVITY;
|
|
|
|
parser->method = HTTP_MKACTIVITY;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -628,7 +633,7 @@ size_t http_parser_execute (http_parser *parser,
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (ch == ' ') break;
|
|
|
|
if (ch == ' ') break;
|
|
|
|
|
|
|
|
|
|
|
|
if (ch == '/') {
|
|
|
|
if (ch == '/' || ch == '*') {
|
|
|
|
MARK(url);
|
|
|
|
MARK(url);
|
|
|
|
MARK(path);
|
|
|
|
MARK(path);
|
|
|
|
state = s_req_path;
|
|
|
|
state = s_req_path;
|
|
|
|