aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/ngx_atomic.h4
-rw-r--r--src/http/ngx_http_request.c2
-rw-r--r--src/http/ngx_http_request_body.c8
3 files changed, 11 insertions, 3 deletions
diff --git a/src/core/ngx_atomic.h b/src/core/ngx_atomic.h
index 6270d8a51..31bf94c45 100644
--- a/src/core/ngx_atomic.h
+++ b/src/core/ngx_atomic.h
@@ -28,7 +28,7 @@ static ngx_inline uint32_t ngx_atomic_inc(ngx_atomic_t *value)
NGX_SMP_LOCK
" xaddl %0, %1; "
- : "=q" (old) : "m" (*value));
+ : "+q" (old) : "m" (*value));
return old;
}
@@ -45,7 +45,7 @@ static ngx_inline uint32_t ngx_atomic_dec(ngx_atomic_t *value)
NGX_SMP_LOCK
" xaddl %0, %1; "
- : "=q" (old) : "m" (*value));
+ : "+q" (old) : "m" (*value));
return old;
}
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 86321b51b..21cce744a 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -38,7 +38,7 @@ static char *client_header_errors[] = {
"client %s sent invalid header, URL: %s",
"client %s sent too long header line, URL: %s",
"client %s sent HTTP/1.1 request without \"Host\" header, URL: %s",
- "client %s sent invalid \"Content-Length\" header, URL: %s"
+ "client %s sent invalid \"Content-Length\" header, URL: %s",
"client %s sent POST method without \"Content-Length\" header, URL: %s"
};
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c
index c54674eb9..9f1260c6f 100644
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -37,6 +37,9 @@ ngx_int_t ngx_http_read_client_request_body(ngx_http_request_t *r)
/* the whole request body was pre-read */
r->header_in->pos += r->headers_in.content_length_n;
+
+ r->request_body->handler(r->request_body->data);
+
return NGX_OK;
}
@@ -84,6 +87,11 @@ static void ngx_http_read_client_request_body_handler(ngx_event_t *rev)
c = rev->data;
r = c->data;
+ if (rev->timedout) {
+ ngx_http_finalize_request(r, NGX_HTTP_REQUEST_TIME_OUT);
+ return;
+ }
+
rc = ngx_http_do_read_client_request_body(r);
if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {