comparison src/http/ngx_http_request_body.c @ 1455:7f2adaebb81f

fix socket leak introduced in r1374 when request header and body was in one packet and connection went to keep-alive state
author Igor Sysoev <igor@sysoev.ru>
date Sat, 01 Sep 2007 16:40:19 +0000
parents 65dd057f71c7
children 698ea64f71e1
comparison
equal deleted inserted replaced
1454:f497ed7682a7 1455:7f2adaebb81f
444 444
445 if (r->headers_in.content_length_n <= 0) { 445 if (r->headers_in.content_length_n <= 0) {
446 return NGX_OK; 446 return NGX_OK;
447 } 447 }
448 448
449 r->discard_body = 1;
450
451 size = r->header_in->last - r->header_in->pos; 449 size = r->header_in->last - r->header_in->pos;
452 450
453 if (size) { 451 if (size) {
454 if (r->headers_in.content_length_n > size) { 452 if (r->headers_in.content_length_n > size) {
455 r->headers_in.content_length_n -= size; 453 r->headers_in.content_length_n -= size;
458 r->header_in->pos += (size_t) r->headers_in.content_length_n; 456 r->header_in->pos += (size_t) r->headers_in.content_length_n;
459 r->headers_in.content_length_n = 0; 457 r->headers_in.content_length_n = 0;
460 return NGX_OK; 458 return NGX_OK;
461 } 459 }
462 } 460 }
461
462 r->discard_body = 1;
463 463
464 r->read_event_handler = ngx_http_read_discarded_request_body_handler; 464 r->read_event_handler = ngx_http_read_discarded_request_body_handler;
465 465
466 if (ngx_handle_read_event(rev, 0) == NGX_ERROR) { 466 if (ngx_handle_read_event(rev, 0) == NGX_ERROR) {
467 return NGX_HTTP_INTERNAL_SERVER_ERROR; 467 return NGX_HTTP_INTERNAL_SERVER_ERROR;