summaryrefslogtreecommitdiffhomepage
path: root/src/http/modules/ngx_http_dav_module.c
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@nginx.com>2016-12-22 11:58:52 +0300
committerRuslan Ermilov <ru@nginx.com>2016-12-22 11:58:52 +0300
commitf02170672926e6afe273340fefb44bd1cc1d6ed4 (patch)
tree73fab606ed909b5908874cf7132fcf6addbd5b8d /src/http/modules/ngx_http_dav_module.c
parentdd70e741970c841a1555911f6468b39870c0607b (diff)
downloadnginx-f02170672926e6afe273340fefb44bd1cc1d6ed4.tar.gz
nginx-f02170672926e6afe273340fefb44bd1cc1d6ed4.tar.bz2
Fixed missing "Location" field with some relative redirects.
Relative redirects did not work with directory redirects and auto redirects issued by nginx.
Diffstat (limited to 'src/http/modules/ngx_http_dav_module.c')
-rw-r--r--src/http/modules/ngx_http_dav_module.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c
index 012a0fba8..895a52dca 100644
--- a/src/http/modules/ngx_http_dav_module.c
+++ b/src/http/modules/ngx_http_dav_module.c
@@ -1067,7 +1067,7 @@ ngx_http_dav_location(ngx_http_request_t *r, u_char *path)
u_char *location;
ngx_http_core_loc_conf_t *clcf;
- r->headers_out.location = ngx_palloc(r->pool, sizeof(ngx_table_elt_t));
+ r->headers_out.location = ngx_list_push(&r->headers_out.headers);
if (r->headers_out.location == NULL) {
return NGX_ERROR;
}
@@ -1086,11 +1086,8 @@ ngx_http_dav_location(ngx_http_request_t *r, u_char *path)
ngx_memcpy(location, r->uri.data, r->uri.len);
}
- /*
- * we do not need to set the r->headers_out.location->hash and
- * r->headers_out.location->key fields
- */
-
+ r->headers_out.location->hash = 1;
+ ngx_str_set(&r->headers_out.location->key, "Location");
r->headers_out.location->value.len = r->uri.len;
r->headers_out.location->value.data = location;