comparison src/http/ngx_http_parse.c @ 60:df7d3fff122b NGINX_0_1_30

nginx 0.1.30 *) Bugfix: the worker process may got caught in an endless loop if the SSI was used. *) Bugfix: the response encrypted by SSL may not transferred complete. *) Bugfix: if the length of the response part received at once from proxied or FastCGI server was equal to 500, then nginx returns the 500 response code; in proxy mode the bug appeared in 0.1.29 only. *) Bugfix: nginx did not consider the directives with 8 or 9 parameters as invalid. *) Feature: the "return" directive can return the 204 response code. *) Feature: the "ignore_invalid_headers" directive.
author Igor Sysoev <http://sysoev.ru>
date Sat, 14 May 2005 00:00:00 +0400
parents b55cbf18157e
children 8ad297c88dcb
comparison
equal deleted inserted replaced
59:4cb463ba8cce 60:df7d3fff122b
527 527
528 switch (state) { 528 switch (state) {
529 529
530 /* first char */ 530 /* first char */
531 case sw_start: 531 case sw_start:
532 r->invalid_header = 0;
533
532 switch (ch) { 534 switch (ch) {
533 case CR: 535 case CR:
534 r->header_end = p; 536 r->header_end = p;
535 state = sw_header_almost_done; 537 state = sw_header_almost_done;
536 break; 538 break;
549 551
550 if (ch >= '0' && ch <= '9') { 552 if (ch >= '0' && ch <= '9') {
551 hash = ch; 553 hash = ch;
552 break; 554 break;
553 } 555 }
556
557 r->invalid_header = 1;
554 558
555 break; 559 break;
556 560
557 } 561 }
558 break; 562 break;
603 && ngx_strncmp(r->header_name_start, "HTTP", 4) == 0) 607 && ngx_strncmp(r->header_name_start, "HTTP", 4) == 0)
604 { 608 {
605 state = sw_ignore_line; 609 state = sw_ignore_line;
606 break; 610 break;
607 } 611 }
612
613 r->invalid_header = 1;
608 614
609 break; 615 break;
610 616
611 /* space* before header value */ 617 /* space* before header value */
612 case sw_space_before_value: 618 case sw_space_before_value: