comparison src/http/ngx_http_copy_filter_module.c @ 132:91372f004adf NGINX_0_3_13

nginx 0.3.13 *) Feature: the IMAP/POP3 proxy supports STARTTLS and STLS. *) Bugfix: the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods. *) Bugfix: in SSI handling. *) Bugfix: now Solaris sendfilev() is not used to transfer the client request body to FastCGI-server via the unix domain socket. *) Bugfix: the "auth_basic" directive did not disable the authorization; bug appeared in 0.3.11.
author Igor Sysoev <http://sysoev.ru>
date Mon, 05 Dec 2005 00:00:00 +0300
parents 644a7935144b
children fa32d59d9a15
comparison
equal deleted inserted replaced
131:add6b1e86d38 132:91372f004adf
68 68
69 69
70 static ngx_int_t 70 static ngx_int_t
71 ngx_http_copy_filter(ngx_http_request_t *r, ngx_chain_t *in) 71 ngx_http_copy_filter(ngx_http_request_t *r, ngx_chain_t *in)
72 { 72 {
73 ngx_int_t rc;
74 ngx_connection_t *c;
73 ngx_output_chain_ctx_t *ctx; 75 ngx_output_chain_ctx_t *ctx;
74 ngx_http_copy_filter_conf_t *conf; 76 ngx_http_copy_filter_conf_t *conf;
75 77
76 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, 78 c = r->connection;
77 "copy filter: \"%V\"", &r->uri); 79
80 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
81 "copy filter: \"%V?%V\"", &r->uri, &r->args);
78 82
79 ctx = ngx_http_get_module_ctx(r, ngx_http_copy_filter_module); 83 ctx = ngx_http_get_module_ctx(r, ngx_http_copy_filter_module);
80 84
81 if (ctx == NULL) { 85 if (ctx == NULL) {
82 conf = ngx_http_get_module_loc_conf(r, ngx_http_copy_filter_module); 86 conf = ngx_http_get_module_loc_conf(r, ngx_http_copy_filter_module);
86 return NGX_ERROR; 90 return NGX_ERROR;
87 } 91 }
88 92
89 ngx_http_set_ctx(r, ctx, ngx_http_copy_filter_module); 93 ngx_http_set_ctx(r, ctx, ngx_http_copy_filter_module);
90 94
91 ctx->sendfile = r->connection->sendfile; 95 ctx->sendfile = c->sendfile;
92 ctx->need_in_memory = r->main_filter_need_in_memory 96 ctx->need_in_memory = r->main_filter_need_in_memory
93 || r->filter_need_in_memory; 97 || r->filter_need_in_memory;
94 ctx->need_in_temp = r->filter_need_temporary; 98 ctx->need_in_temp = r->filter_need_temporary;
95 99
96 ctx->pool = r->pool; 100 ctx->pool = r->pool;
100 ctx->output_filter = (ngx_output_chain_filter_pt) ngx_http_next_filter; 104 ctx->output_filter = (ngx_output_chain_filter_pt) ngx_http_next_filter;
101 ctx->filter_ctx = r; 105 ctx->filter_ctx = r;
102 106
103 } 107 }
104 108
105 /* the request pool may be already destroyed after ngx_output_chain()*/ 109 rc = ngx_output_chain(ctx, in);
106 110
107 return ngx_output_chain(ctx, in); 111 #if (NGX_DEBUG)
112 if (!c->destroyed) {
113 ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
114 "copy filter: %i \"%V?%V\"", rc, &r->uri, &r->args);
115 }
116 #endif
117
118 return rc;
108 } 119 }
109 120
110 121
111 static void * 122 static void *
112 ngx_http_copy_filter_create_conf(ngx_conf_t *cf) 123 ngx_http_copy_filter_create_conf(ngx_conf_t *cf)