changeset 299:46b7eeb8a116

nginx-0.0.3-2004-03-30-19:59:50 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 30 Mar 2004 15:59:50 +0000
parents 4a3f18406832
children 502b03d9d2a3
files src/core/ngx_atomic.h src/http/ngx_http_request.c src/http/ngx_http_request_body.c
diffstat 3 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/ngx_atomic.h
+++ b/src/core/ngx_atomic.h
@@ -28,7 +28,7 @@ static ngx_inline uint32_t ngx_atomic_in
         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_de
         NGX_SMP_LOCK
     "   xaddl  %0, %1;   "
 
-    : "=q" (old) : "m" (*value));
+    : "+q" (old) : "m" (*value));
 
     return old;
 }
--- 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"
 };
 
--- 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_b
             /* 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
     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) {