comparison src/http/ngx_http_parse.c @ 71:59229033ae93

nginx-0.0.1-2003-04-08-19:40:10 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 08 Apr 2003 15:40:10 +0000
parents 5a7d1aaa1618
children 66de3f065886
comparison
equal deleted inserted replaced
70:e320bf51c4e3 71:59229033ae93
336 sw_space_before_value, 336 sw_space_before_value,
337 sw_value, 337 sw_value,
338 sw_space_after_value, 338 sw_space_after_value,
339 sw_almost_done, 339 sw_almost_done,
340 sw_header_almost_done, 340 sw_header_almost_done,
341 sw_ignore_line,
341 sw_done, 342 sw_done,
342 sw_header_done 343 sw_header_done
343 } state; 344 } state;
344 345
345 state = r->state; 346 state = r->state;
402 403
403 if (ch >= '0' && ch <= '9') { 404 if (ch >= '0' && ch <= '9') {
404 break; 405 break;
405 } 406 }
406 407
408 if (ch == '/') {
409 /* IIS can send duplicate "HTTP/1.1 ..." lines */
410 if (r->proxy && ngx_strncmp(r->header_start, "HTTP", 4) == 0) {
411 state = sw_ignore_line;
412 break;
413 }
414 }
415
407 return NGX_HTTP_PARSE_INVALID_HEADER; 416 return NGX_HTTP_PARSE_INVALID_HEADER;
408 417
409 /* space* before header value */ 418 /* space* before header value */
410 case sw_space_before_value: 419 case sw_space_before_value:
411 switch (ch) { 420 switch (ch) {
455 case LF: 464 case LF:
456 state = sw_done; 465 state = sw_done;
457 break; 466 break;
458 default: 467 default:
459 state = sw_value; 468 state = sw_value;
469 break;
470 }
471 break;
472
473 /* ignore header line */
474 case sw_ignore_line:
475 switch (ch) {
476 case LF:
477 state = sw_start;
478 break;
479 default:
460 break; 480 break;
461 } 481 }
462 break; 482 break;
463 483
464 /* end of header line */ 484 /* end of header line */