mirror of
https://github.com/nginx/nginx.git
synced 2025-06-11 12:22:41 +08:00
add more WebDAV methods
This commit is contained in:
parent
e927b1e58a
commit
8365f731bf
@ -2664,9 +2664,19 @@ ngx_http_core_root(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||
|
||||
|
||||
static ngx_http_method_name_t ngx_methods_names[] = {
|
||||
{ "GET", (uint32_t) ~NGX_HTTP_GET },
|
||||
{ "HEAD", (uint32_t) ~NGX_HTTP_HEAD },
|
||||
{ "POST", (uint32_t) ~NGX_HTTP_POST },
|
||||
{ "GET", (uint32_t) ~NGX_HTTP_GET },
|
||||
{ "HEAD", (uint32_t) ~NGX_HTTP_HEAD },
|
||||
{ "POST", (uint32_t) ~NGX_HTTP_POST },
|
||||
{ "PUT", (uint32_t) ~NGX_HTTP_PUT },
|
||||
{ "DELETE", (uint32_t) ~NGX_HTTP_DELETE },
|
||||
{ "MKCOL", (uint32_t) ~NGX_HTTP_MKCOL },
|
||||
{ "COPY", (uint32_t) ~NGX_HTTP_COPY },
|
||||
{ "MOVE", (uint32_t) ~NGX_HTTP_MOVE },
|
||||
{ "OPTIONS", (uint32_t) ~NGX_HTTP_OPTIONS },
|
||||
{ "PROPFIND" , (uint32_t) ~NGX_HTTP_PROPFIND },
|
||||
{ "PROPPATCH", (uint32_t) ~NGX_HTTP_PROPPATCH },
|
||||
{ "LOCK", (uint32_t) ~NGX_HTTP_LOCK },
|
||||
{ "UNLOCK", (uint32_t) ~NGX_HTTP_UNLOCK },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
|
@ -94,23 +94,49 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
|
||||
case 3:
|
||||
if (m[0] == 'G' && m[1] == 'E' && m[2] == 'T') {
|
||||
r->method = NGX_HTTP_GET;
|
||||
|
||||
} else if (m[0] == 'P' && m[1] == 'U' && m[2] == 'T') {
|
||||
r->method = NGX_HTTP_PUT;
|
||||
break;
|
||||
}
|
||||
|
||||
if (m[0] == 'P' && m[1] == 'U' && m[2] == 'T') {
|
||||
r->method = NGX_HTTP_PUT;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if (m[0] == 'P' && m[1] == 'O'
|
||||
&& m[2] == 'S' && m[3] == 'T')
|
||||
{
|
||||
r->method = NGX_HTTP_POST;
|
||||
if (m[1] == 'O') {
|
||||
|
||||
} else if (m[0] == 'H' && m[1] == 'E'
|
||||
&& m[2] == 'A' && m[3] == 'D')
|
||||
{
|
||||
r->method = NGX_HTTP_HEAD;
|
||||
if (m[0] == 'P' && m[2] == 'S' && m[3] == 'T') {
|
||||
r->method = NGX_HTTP_POST;
|
||||
break;
|
||||
}
|
||||
|
||||
if (m[0] == 'C' && m[2] == 'P' && m[3] == 'Y') {
|
||||
r->method = NGX_HTTP_COPY;
|
||||
break;
|
||||
}
|
||||
|
||||
if (m[0] == 'M' && m[2] == 'V' && m[3] == 'E') {
|
||||
r->method = NGX_HTTP_MOVE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (m[0] == 'L' && m[2] == 'C' && m[3] == 'K') {
|
||||
r->method = NGX_HTTP_LOCK;
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if (m[0] == 'H' && m[1] == 'E'
|
||||
&& m[2] == 'A' && m[3] == 'D')
|
||||
{
|
||||
r->method = NGX_HTTP_HEAD;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 5:
|
||||
@ -119,6 +145,7 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
|
||||
{
|
||||
r->method = NGX_HTTP_MKCOL;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 6:
|
||||
@ -126,7 +153,46 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
|
||||
&& m[3] == 'E' && m[4] == 'T' && m[5] == 'E')
|
||||
{
|
||||
r->method = NGX_HTTP_DELETE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (m[0] == 'U' && m[1] == 'N' && m[2] == 'L'
|
||||
&& m[3] == 'O' && m[4] == 'C' && m[5] == 'K')
|
||||
{
|
||||
r->method = NGX_HTTP_UNLOCK;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 7:
|
||||
if (m[0] == 'O' && m[1] == 'P'
|
||||
&& m[2] == 'T' && m[3] == 'I'
|
||||
&& m[4] == 'O' && m[5] == 'N' && m[6] == 'S')
|
||||
{
|
||||
r->method = NGX_HTTP_OPTIONS;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 8:
|
||||
if (m[0] == 'P' && m[1] == 'R'
|
||||
&& m[2] == 'O' && m[3] == 'P' && m[4] == 'F'
|
||||
&& m[5] == 'I' && m[6] == 'N' && m[7] == 'D')
|
||||
{
|
||||
r->method = NGX_HTTP_PROPFIND;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 9:
|
||||
if (m[0] == 'P' && m[1] == 'R' && m[2] == 'O'
|
||||
&& m[3] == 'P' && m[4] == 'P' && m[5] == 'A'
|
||||
&& m[6] == 'T' && m[7] == 'C' && m[8] == 'H')
|
||||
{
|
||||
r->method = NGX_HTTP_PROPPATCH;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,13 @@
|
||||
#define NGX_HTTP_PUT 0x0010
|
||||
#define NGX_HTTP_DELETE 0x0020
|
||||
#define NGX_HTTP_MKCOL 0x0040
|
||||
#define NGX_HTTP_COPY 0x0080
|
||||
#define NGX_HTTP_MOVE 0x0100
|
||||
#define NGX_HTTP_OPTIONS 0x0200
|
||||
#define NGX_HTTP_PROPFIND 0x0400
|
||||
#define NGX_HTTP_PROPPATCH 0x0800
|
||||
#define NGX_HTTP_LOCK 0x1000
|
||||
#define NGX_HTTP_UNLOCK 0x2000
|
||||
|
||||
#define NGX_HTTP_CONNECTION_CLOSE 1
|
||||
#define NGX_HTTP_CONNECTION_KEEP_ALIVE 2
|
||||
|
Loading…
Reference in New Issue
Block a user