nginx-0.3.12-RELEASE import

    *) Security: if nginx was built with the ngx_http_realip_module and the
       "satisfy_any on" directive was used, then access and authorization
       directives did not work. The ngx_http_realip_module was not built
       and is not built by default.

    *) Change: the "$time_gmt" variable name was changed to "$time_local".

    *) Change: the "proxy_header_buffer_size" and
       "fastcgi_header_buffer_size" directives was renamed to the
       "proxy_buffer_size" and "fastcgi_buffer_size" directives.

    *) Feature: the ngx_http_memcached_module.

    *) Feature: the "proxy_buffering" directive.

    *) Bugfix: the changes in accept mutex handling when the "rtsig" method
       was used; the bug had appeared in 0.3.0.

    *) Bugfix: if the client sent the "Transfer-Encoding: chunked" header
       line, then nginx returns the 411 error.

    *) Bugfix: if the "auth_basic" directive was inherited from the http
       level, then the realm in the "WWW-Authenticate" header line was
       without the "Basic realm" text.

    *) Bugfix: if the "combined" format was explicitly specified in the
       "access_log" directive, then the empty lines was written to the log;
       the bug had appeared in 0.3.8.

    *) Bugfix: nginx did not run on the sparc platform under any OS except
       Solaris.

    *) Bugfix: now it is not necessary to place space between the quoted
       string and closing bracket in the "if" directive.
diff --git a/src/http/ngx_http_upstream.h b/src/http/ngx_http_upstream.h
index ad4c1d4..2032659 100644
--- a/src/http/ngx_http_upstream.h
+++ b/src/http/ngx_http_upstream.h
@@ -51,7 +51,7 @@
     ngx_msec_t                      timeout;
 
     size_t                          send_lowat;
-    size_t                          header_buffer_size;
+    size_t                          buffer_size;
 
     size_t                          busy_buffers_size;
     size_t                          max_temp_file_size;
@@ -68,6 +68,7 @@
 
     ngx_bufs_t                      bufs;
 
+    ngx_flag_t                      buffering;
     ngx_flag_t                      pass_request_headers;
     ngx_flag_t                      pass_request_body;
 
@@ -86,6 +87,8 @@
     ngx_str_t                       location;
     ngx_str_t                       url;  /* used in proxy_rewrite_location */
 
+    ngx_uint_t                      redirect_404; /* unsigned redirect_404:1; */
+
 #if (NGX_HTTP_SSL)
     ngx_ssl_t                      *ssl;
 #endif
@@ -139,7 +142,7 @@
 struct ngx_http_upstream_s {
     ngx_peer_connection_t           peer;
 
-    ngx_event_pipe_t                pipe;
+    ngx_event_pipe_t               *pipe;
 
     ngx_chain_t                    *request_bufs;
 
@@ -150,7 +153,16 @@
 
     ngx_http_upstream_headers_in_t  headers_in;
 
-    ngx_buf_t                       header_in;
+    ngx_buf_t                       buffer;
+    size_t                          length;
+
+    ngx_chain_t                    *out_bufs;
+    ngx_chain_t                    *busy_bufs;
+    ngx_chain_t                    *free_bufs;
+
+    ngx_int_t                     (*input_filter_init)(void *data);
+    ngx_int_t                     (*input_filter)(void *data, ssize_t bytes);
+    void                           *input_filter_ctx;
 
     ngx_int_t                     (*create_request)(ngx_http_request_t *r);
     ngx_int_t                     (*reinit_request)(ngx_http_request_t *r);