From 6707ba90729c615ffa5bf5ea81b8d32c3d8bd6e4 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Tue, 30 Mar 2004 15:59:50 +0000 Subject: [PATCH] nginx-0.0.3-2004-03-30-19:59:50 import --- src/core/ngx_atomic.h | 4 ++-- src/http/ngx_http_request.c | 2 +- src/http/ngx_http_request_body.c | 8 ++++++++ 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) {