|
|
|
@ -19,7 +19,10 @@ |
|
|
|
|
action mark { ctx->mark = GETMARK(fpc); } |
|
|
|
|
action done { fbreak; } |
|
|
|
|
|
|
|
|
|
action method { getStringTo(fpc, ctx->request->http_method_str); } |
|
|
|
|
action method { |
|
|
|
|
getStringTo(fpc, ctx->request->http_method_str); |
|
|
|
|
ctx->request->http_method = li_http_method_from_string(GSTR_LEN(ctx->request->http_method_str)); |
|
|
|
|
} |
|
|
|
|
action uri { getStringTo(fpc, ctx->request->uri.raw); } |
|
|
|
|
|
|
|
|
|
action header_key { |
|
|
|
@ -68,9 +71,10 @@ |
|
|
|
|
# Comment = "(" ( CText | Quoted_Pair | Comment )* ")"; |
|
|
|
|
# CText = TEXT - [()]; |
|
|
|
|
|
|
|
|
|
Quoted_Pair = "\\" CHAR; |
|
|
|
|
# we don't allow escaping control chars (the RFC does) |
|
|
|
|
Quoted_Pair = "\\" (CHAR - CTL); |
|
|
|
|
Comment = ( TEXT | Quoted_Pair )*; |
|
|
|
|
QDText = TEXT - DQUOTE; |
|
|
|
|
QDText = TEXT -- (DQUOTE | "\\"); |
|
|
|
|
Quoted_String = DQUOTE ( QDText | Quoted_Pair )* DQUOTE; |
|
|
|
|
|
|
|
|
|
HTTP_Version = ( |
|
|
|
@ -90,30 +94,7 @@ |
|
|
|
|
Path_Segments = Segment ("/" Segment)*; |
|
|
|
|
Abs_Path = "/" Path_Segments; |
|
|
|
|
|
|
|
|
|
Method = ( |
|
|
|
|
"GET" %{ ctx->request->http_method = LI_HTTP_METHOD_GET; } |
|
|
|
|
| "POST" %{ ctx->request->http_method = LI_HTTP_METHOD_POST; } |
|
|
|
|
| "HEAD" %{ ctx->request->http_method = LI_HTTP_METHOD_HEAD; } |
|
|
|
|
| "OPTIONS" %{ ctx->request->http_method = LI_HTTP_METHOD_OPTIONS; } |
|
|
|
|
| "PROPFIND" %{ ctx->request->http_method = LI_HTTP_METHOD_PROPFIND; } |
|
|
|
|
| "MKCOL" %{ ctx->request->http_method = LI_HTTP_METHOD_MKCOL; } |
|
|
|
|
| "PUT" %{ ctx->request->http_method = LI_HTTP_METHOD_PUT; } |
|
|
|
|
| "DELETE" %{ ctx->request->http_method = LI_HTTP_METHOD_DELETE; } |
|
|
|
|
| "COPY" %{ ctx->request->http_method = LI_HTTP_METHOD_COPY; } |
|
|
|
|
| "MOVE" %{ ctx->request->http_method = LI_HTTP_METHOD_MOVE; } |
|
|
|
|
| "PROPPATCH" %{ ctx->request->http_method = LI_HTTP_METHOD_PROPPATCH; } |
|
|
|
|
| "REPORT" %{ ctx->request->http_method = LI_HTTP_METHOD_REPORT; } |
|
|
|
|
| "CHECKOUT" %{ ctx->request->http_method = LI_HTTP_METHOD_CHECKOUT; } |
|
|
|
|
| "CHECKIN" %{ ctx->request->http_method = LI_HTTP_METHOD_CHECKIN; } |
|
|
|
|
| "VERSION-CONTROL" %{ ctx->request->http_method = LI_HTTP_METHOD_VERSION_CONTROL; } |
|
|
|
|
| "UNCHECKOUT" %{ ctx->request->http_method = LI_HTTP_METHOD_UNCHECKOUT; } |
|
|
|
|
| "MKACTIVITY" %{ ctx->request->http_method = LI_HTTP_METHOD_MKACTIVITY; } |
|
|
|
|
| "MERGE" %{ ctx->request->http_method = LI_HTTP_METHOD_MERGE; } |
|
|
|
|
| "LOCK" %{ ctx->request->http_method = LI_HTTP_METHOD_LOCK; } |
|
|
|
|
| "UNLOCK" %{ ctx->request->http_method = LI_HTTP_METHOD_UNLOCK; } |
|
|
|
|
| "LABEL" %{ ctx->request->http_method = LI_HTTP_METHOD_LABEL; } |
|
|
|
|
| "CONNECT" %{ ctx->request->http_method = LI_HTTP_METHOD_CONNECT; } |
|
|
|
|
| Token ) >mark >{ ctx->request->http_method = LI_HTTP_METHOD_UNSET; } %method; |
|
|
|
|
Method = Token >mark >{ ctx->request->http_method = LI_HTTP_METHOD_UNSET; } %method; |
|
|
|
|
|
|
|
|
|
Request_URI = ("*" | ( any - CTL - SP )+) >mark %uri; |
|
|
|
|
Request_Line = Method " " Request_URI " " HTTP_Version CRLF; |
|
|
|
|