Renamed constants and fixed off-by-one error in "msie_padding on" handling.
Ruslan Ermilov
10 years ago
293 | 293 | |
294 | 294 | ngx_null_string, /* 201, 204 */ |
295 | 295 | |
296 | #define NGX_HTTP_LAST_LEVEL_200 202 | |
297 | #define NGX_HTTP_LEVEL_200 (NGX_HTTP_LAST_LEVEL_200 - 201) | |
296 | #define NGX_HTTP_LAST_2XX 202 | |
297 | #define NGX_HTTP_OFF_3XX (NGX_HTTP_LAST_2XX - 201) | |
298 | 298 | |
299 | 299 | /* ngx_null_string, */ /* 300 */ |
300 | 300 | ngx_string(ngx_http_error_301_page), |
301 | 301 | ngx_string(ngx_http_error_302_page), |
302 | 302 | ngx_string(ngx_http_error_303_page), |
303 | 303 | |
304 | #define NGX_HTTP_LAST_LEVEL_300 304 | |
305 | #define NGX_HTTP_LEVEL_300 (NGX_HTTP_LAST_LEVEL_300 - 301) | |
304 | #define NGX_HTTP_LAST_3XX 304 | |
305 | #define NGX_HTTP_OFF_4XX (NGX_HTTP_LAST_3XX - 301 + NGX_HTTP_OFF_3XX) | |
306 | 306 | |
307 | 307 | ngx_string(ngx_http_error_400_page), |
308 | 308 | ngx_string(ngx_http_error_401_page), |
322 | 322 | ngx_string(ngx_http_error_415_page), |
323 | 323 | ngx_string(ngx_http_error_416_page), |
324 | 324 | |
325 | #define NGX_HTTP_LAST_LEVEL_400 417 | |
326 | #define NGX_HTTP_LEVEL_400 (NGX_HTTP_LAST_LEVEL_400 - 400) | |
325 | #define NGX_HTTP_LAST_4XX 417 | |
326 | #define NGX_HTTP_OFF_5XX (NGX_HTTP_LAST_4XX - 400 + NGX_HTTP_OFF_4XX) | |
327 | 327 | |
328 | 328 | ngx_string(ngx_http_error_494_page), /* 494, request header too large */ |
329 | 329 | ngx_string(ngx_http_error_495_page), /* 495, https certificate error */ |
341 | 341 | ngx_null_string, /* 506 */ |
342 | 342 | ngx_string(ngx_http_error_507_page) |
343 | 343 | |
344 | #define NGX_HTTP_LAST_LEVEL_500 508 | |
344 | #define NGX_HTTP_LAST_5XX 508 | |
345 | 345 | |
346 | 346 | }; |
347 | 347 | |
427 | 427 | err = 0; |
428 | 428 | |
429 | 429 | } else if (error >= NGX_HTTP_MOVED_PERMANENTLY |
430 | && error < NGX_HTTP_LAST_LEVEL_300) | |
430 | && error < NGX_HTTP_LAST_3XX) | |
431 | 431 | { |
432 | 432 | /* 3XX */ |
433 | err = error - NGX_HTTP_MOVED_PERMANENTLY + NGX_HTTP_LEVEL_200; | |
433 | err = error - NGX_HTTP_MOVED_PERMANENTLY + NGX_HTTP_OFF_3XX; | |
434 | 434 | |
435 | 435 | } else if (error >= NGX_HTTP_BAD_REQUEST |
436 | && error < NGX_HTTP_LAST_LEVEL_400) | |
436 | && error < NGX_HTTP_LAST_4XX) | |
437 | 437 | { |
438 | 438 | /* 4XX */ |
439 | err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_200 | |
440 | + NGX_HTTP_LEVEL_300; | |
439 | err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_OFF_4XX; | |
441 | 440 | |
442 | 441 | } else if (error >= NGX_HTTP_NGINX_CODES |
443 | && error < NGX_HTTP_LAST_LEVEL_500) | |
442 | && error < NGX_HTTP_LAST_5XX) | |
444 | 443 | { |
445 | 444 | /* 49X, 5XX */ |
446 | err = error - NGX_HTTP_NGINX_CODES + NGX_HTTP_LEVEL_200 | |
447 | + NGX_HTTP_LEVEL_300 | |
448 | + NGX_HTTP_LEVEL_400; | |
445 | err = error - NGX_HTTP_NGINX_CODES + NGX_HTTP_OFF_5XX; | |
449 | 446 | switch (error) { |
450 | 447 | case NGX_HTTP_TO_HTTPS: |
451 | 448 | case NGX_HTTPS_CERT_ERROR: |
594 | 591 | |
595 | 592 | return ngx_http_send_special_response(r, clcf, r->err_status |
596 | 593 | - NGX_HTTP_MOVED_PERMANENTLY |
597 | + NGX_HTTP_LEVEL_200); | |
594 | + NGX_HTTP_OFF_3XX); | |
598 | 595 | } |
599 | 596 | |
600 | 597 | |
625 | 622 | if (clcf->msie_padding |
626 | 623 | && (r->headers_in.msie || r->headers_in.chrome) |
627 | 624 | && r->http_version >= NGX_HTTP_VERSION_10 |
628 | && err >= NGX_HTTP_LEVEL_300) | |
625 | && err >= NGX_HTTP_OFF_4XX) | |
629 | 626 | { |
630 | 627 | r->headers_out.content_length_n += |
631 | 628 | sizeof(ngx_http_msie_padding) - 1; |