diff src/http/ngx_http_upstream.h @ 130:82d695e3d662 NGINX_0_3_12

nginx 0.3.12 *) 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; bug 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; bug 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.
author Igor Sysoev <http://sysoev.ru>
date Sat, 26 Nov 2005 00:00:00 +0300
parents df17fbafec8f
children 8e6d4d96ec4c
line wrap: on
line diff
--- a/src/http/ngx_http_upstream.h
+++ b/src/http/ngx_http_upstream.h
@@ -51,7 +51,7 @@ typedef struct {
     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 @@ typedef struct {
 
     ngx_bufs_t                      bufs;
 
+    ngx_flag_t                      buffering;
     ngx_flag_t                      pass_request_headers;
     ngx_flag_t                      pass_request_body;
 
@@ -86,6 +87,8 @@ typedef struct {
     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 @@ typedef struct {
 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 @@ struct ngx_http_upstream_s {
 
     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);