diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2016-10-10 16:24:50 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2016-10-10 16:24:50 +0300 |
commit | 82ec8492717dcf141eead17fd158ff3f9e072e84 (patch) | |
tree | 7011465fcb1d1656e71de92c42dfd996eb8e1986 /src | |
parent | f594b2bf6dbb49f5e2bc27cc3f27f272a7f95c1c (diff) | |
download | nginx-82ec8492717dcf141eead17fd158ff3f9e072e84.tar.gz nginx-82ec8492717dcf141eead17fd158ff3f9e072e84.zip |
Allowed '-' in method names.
It is used at least by SOAP (M-POST method, defined by RFC 2774) and
by WebDAV versioning (VERSION-CONTROL and BASELINE-CONTROL methods,
defined by RFC 3253).
Diffstat (limited to 'src')
-rw-r--r-- | src/http/ngx_http_parse.c | 4 | ||||
-rw-r--r-- | src/http/v2/ngx_http_v2.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c index bd6c9c9b5..9f9947316 100644 --- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -149,7 +149,7 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b) break; } - if ((ch < 'A' || ch > 'Z') && ch != '_') { + if ((ch < 'A' || ch > 'Z') && ch != '_' && ch != '-') { return NGX_HTTP_PARSE_INVALID_METHOD; } @@ -270,7 +270,7 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b) break; } - if ((ch < 'A' || ch > 'Z') && ch != '_') { + if ((ch < 'A' || ch > 'Z') && ch != '_' && ch != '-') { return NGX_HTTP_PARSE_INVALID_METHOD; } diff --git a/src/http/v2/ngx_http_v2.c b/src/http/v2/ngx_http_v2.c index d0cd2ab79..235092b21 100644 --- a/src/http/v2/ngx_http_v2.c +++ b/src/http/v2/ngx_http_v2.c @@ -3178,7 +3178,7 @@ ngx_http_v2_parse_method(ngx_http_request_t *r, ngx_http_v2_header_t *header) p = r->method_name.data; do { - if ((*p < 'A' || *p > 'Z') && *p != '_') { + if ((*p < 'A' || *p > 'Z') && *p != '_' && *p != '-') { ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "client sent invalid method: \"%V\"", &r->method_name); |