aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-01-24 09:14:08 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-01-24 09:14:08 +0000
commit64304df431ec9eadc29b2ac5bd4e152e307d9fcf (patch)
tree82e1a07863968f9edabbfda1926b63ef17f7b25d
parent604a7d1da441a7b0fac48dcae40d98b6e3bf9b63 (diff)
downloadnginx-64304df431ec9eadc29b2ac5bd4e152e307d9fcf.tar.gz
nginx-64304df431ec9eadc29b2ac5bd4e152e307d9fcf.zip
client_body_in_file_only any
-rw-r--r--src/http/ngx_http_core_module.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 9431c8855..63efec865 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -23,6 +23,11 @@ typedef struct {
#define NGX_HTTP_LOCATION_REGEX 4
+#define NGX_HTTP_REQUEST_BODY_FILE_OFF 0
+#define NGX_HTTP_REQUEST_BODY_FILE_ON 1
+#define NGX_HTTP_REQUEST_BODY_FILE_ANY 2
+
+
static ngx_int_t ngx_http_core_find_location(ngx_http_request_t *r,
ngx_array_t *locations, size_t len);
@@ -74,6 +79,14 @@ static ngx_conf_deprecated_t ngx_conf_deprecated_optimize_host_names = {
};
+static ngx_conf_enum_t ngx_http_core_request_body_in_file[] = {
+ { ngx_string("off"), NGX_HTTP_REQUEST_BODY_FILE_OFF },
+ { ngx_string("on"), NGX_HTTP_REQUEST_BODY_FILE_ON },
+ { ngx_string("any"), NGX_HTTP_REQUEST_BODY_FILE_ANY },
+ { ngx_null_string, 0 }
+};
+
+
static ngx_command_t ngx_http_core_commands[] = {
{ ngx_string("variables_hash_max_size"),
@@ -269,10 +282,10 @@ static ngx_command_t ngx_http_core_commands[] = {
{ ngx_string("client_body_in_file_only"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
- ngx_conf_set_flag_slot,
+ ngx_conf_set_enum_slot,
NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_core_loc_conf_t, client_body_in_file_only),
- NULL },
+ &ngx_http_core_request_body_in_file },
{ ngx_string("sendfile"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
@@ -879,6 +892,10 @@ ngx_http_update_location_config(ngx_http_request_t *r)
r->request_body_in_persistent_file = 1;
r->request_body_file_log_level = NGX_LOG_NOTICE;
+ if (clcf->client_body_in_file_only == NGX_HTTP_REQUEST_BODY_FILE_ON) {
+ r->request_body_delete_incomplete_file = 1;
+ }
+
} else {
r->request_body_file_log_level = NGX_LOG_WARN;
}