comparison src/http/modules/perl/ngx_http_perl_module.c @ 3111:4a2d3f571de6

fix request counter handling in perl module for $r->internal_redirect() and $r->has_request_body(), the bug was introduced in r3050
author Igor Sysoev <igor@sysoev.ru>
date Tue, 08 Sep 2009 11:33:32 +0000
parents 5e8bf3e983d2
children 6cb238e091a9
comparison
equal deleted inserted replaced
3110:c09bf4a53b79 3111:4a2d3f571de6
236 236
237 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, 237 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
238 "perl handler done: %i", rc); 238 "perl handler done: %i", rc);
239 239
240 if (rc == NGX_DONE) { 240 if (rc == NGX_DONE) {
241 ngx_http_finalize_request(r, rc);
241 return; 242 return;
242 } 243 }
243 244
244 if (rc > 600) { 245 if (rc > 600) {
245 rc = NGX_OK; 246 rc = NGX_OK;
255 256
256 ctx->filename.data = NULL; 257 ctx->filename.data = NULL;
257 ctx->redirect_uri.len = 0; 258 ctx->redirect_uri.len = 0;
258 259
259 if (ctx->done || ctx->next) { 260 if (ctx->done || ctx->next) {
261 ngx_http_finalize_request(r, NGX_DONE);
260 return; 262 return;
261 } 263 }
262 264
263 if (uri.len) { 265 if (uri.len) {
264 ngx_http_internal_redirect(r, &uri, &args); 266 ngx_http_internal_redirect(r, &uri, &args);
267 ngx_http_finalize_request(r, NGX_DONE);
265 return; 268 return;
266 } 269 }
267 270
268 if (rc == NGX_OK || rc == NGX_HTTP_OK) { 271 if (rc == NGX_OK || rc == NGX_HTTP_OK) {
269 ngx_http_send_special(r, NGX_HTTP_LAST); 272 ngx_http_send_special(r, NGX_HTTP_LAST);