Mercurial > hg > nginx
changeset 921:cba27113c33c
DELETE may not have the "Depth" header
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 14 Dec 2006 22:12:42 +0000 |
parents | da097813ff2e |
children | a5b9cdfe3e19 |
files | src/http/modules/ngx_http_dav_module.c |
diffstat | 1 files changed, 15 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_dav_module.c +++ b/src/http/modules/ngx_http_dav_module.c @@ -106,6 +106,7 @@ ngx_http_dav_handler(ngx_http_request_t ngx_int_t rc; ngx_str_t path; ngx_file_info_t fi; + ngx_table_elt_t *depth; ngx_http_dav_loc_conf_t *dlcf; /* TODO: Win32 */ @@ -162,11 +163,15 @@ ngx_http_dav_handler(ngx_http_request_t if (ngx_is_dir(&fi)) { - if (r->uri.data[r->uri.len - 1] != '/' - || r->headers_in.depth == NULL - || r->headers_in.depth->value.len != sizeof("infinity") - 1 - || ngx_strcmp(r->headers_in.depth->value.data, "infinity") - != 0) + if (r->uri.data[r->uri.len - 1] != '/') { + return NGX_HTTP_BAD_REQUEST; + } + + depth = r->headers_in.depth; + + if (depth + && (depth->value.len != sizeof("infinity") - 1 + || ngx_strcmp(depth->value.data, "infinity") != 0)) { return NGX_HTTP_BAD_REQUEST; } @@ -183,9 +188,11 @@ ngx_http_dav_handler(ngx_http_request_t return NGX_HTTP_BAD_REQUEST; } - if (r->headers_in.depth - && r->headers_in.depth->value.len == 1 - && r->headers_in.depth->value.data[0] == '1') + depth = r->headers_in.depth; + + if (depth + && depth->value.len == 1 + && depth->value.data[0] == '1') { return NGX_HTTP_BAD_REQUEST; }