DELETE may not have the "Depth" header

This commit is contained in:
Igor Sysoev 2006-12-14 22:12:42 +00:00
parent fc99b009bc
commit acbcd9da7f

View File

@ -106,6 +106,7 @@ ngx_http_dav_handler(ngx_http_request_t *r)
ngx_int_t rc; ngx_int_t rc;
ngx_str_t path; ngx_str_t path;
ngx_file_info_t fi; ngx_file_info_t fi;
ngx_table_elt_t *depth;
ngx_http_dav_loc_conf_t *dlcf; ngx_http_dav_loc_conf_t *dlcf;
/* TODO: Win32 */ /* TODO: Win32 */
@ -162,11 +163,15 @@ ngx_http_dav_handler(ngx_http_request_t *r)
if (ngx_is_dir(&fi)) { if (ngx_is_dir(&fi)) {
if (r->uri.data[r->uri.len - 1] != '/' if (r->uri.data[r->uri.len - 1] != '/') {
|| r->headers_in.depth == NULL return NGX_HTTP_BAD_REQUEST;
|| r->headers_in.depth->value.len != sizeof("infinity") - 1 }
|| ngx_strcmp(r->headers_in.depth->value.data, "infinity")
!= 0) 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; return NGX_HTTP_BAD_REQUEST;
} }
@ -183,9 +188,11 @@ ngx_http_dav_handler(ngx_http_request_t *r)
return NGX_HTTP_BAD_REQUEST; return NGX_HTTP_BAD_REQUEST;
} }
if (r->headers_in.depth depth = r->headers_in.depth;
&& r->headers_in.depth->value.len == 1
&& r->headers_in.depth->value.data[0] == '1') if (depth
&& depth->value.len == 1
&& depth->value.data[0] == '1')
{ {
return NGX_HTTP_BAD_REQUEST; return NGX_HTTP_BAD_REQUEST;
} }