summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2018-02-07 16:44:29 +0300
committerRoman Arutyunyan <arut@nginx.com>2018-02-07 16:44:29 +0300
commitd31d547dba886fcbc3738e649b1667e65170e6e1 (patch)
treef542904dc1cf44edf601d5430e884e6baaffde50
parentbde18907ac71a521b076a73270bfebe99afa6cdf (diff)
downloadnginx-d31d547dba886fcbc3738e649b1667e65170e6e1.tar.gz
Dav: added error logging.
Previously, when request body was not available or was previously read in memory rather than a file, client received HTTP 500 error, but no explanation was logged in error log. This could happen, for example, if request body was read or discarded prior to error_page redirect, or if mirroring was enabled along with dav.
-rw-r--r--src/http/modules/ngx_http_dav_module.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c
index 566b08ba1..55ad9eb19 100644
--- a/src/http/modules/ngx_http_dav_module.c
+++ b/src/http/modules/ngx_http_dav_module.c
@@ -213,7 +213,16 @@ ngx_http_dav_put_handler(ngx_http_request_t *r)
ngx_ext_rename_file_t ext;
ngx_http_dav_loc_conf_t *dlcf;
- if (r->request_body == NULL || r->request_body->temp_file == NULL) {
+ if (r->request_body == NULL) {
+ ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+ "PUT request body is unavailable");
+ ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
+ return;
+ }
+
+ if (r->request_body->temp_file == NULL) {
+ ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+ "PUT request body must be in a file");
ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
return;
}