comparison src/http/modules/ngx_http_ssi_filter_module.c @ 376:d13234035cad NGINX_0_6_32

nginx 0.6.32 *) Change: the "none" parameter in the "ssl_session_cache" directive; now this is default parameter. Thanks to Rob Mueller. *) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX in an access_log. Thanks to Maxim Dounin. *) Change: now nginx allows several "Host" request header line. *) Feature: the "modified" flag in the "expires" directive. *) Feature: the $uid_got and $uid_set variables may be used at any request processing stage. *) Feature: the $hostname variable. Thanks to Andrei Nigmatulin. *) Feature: DESTDIR support. Thanks to Todd A. Fisher and Andras Voroskoi. *) Bugfix: if sub_filter and SSI were used together, then responses might were transferred incorrectly. *) Bugfix: large SSI inclusions might be truncated. *) Bugfix: the "proxy_pass" directive did not work with the HTTPS protocol; the bug had appeared in 0.6.9. *) Bugfix: worker processes might not catch reconfiguration and log rotation signals. *) Bugfix: nginx could not be built on latest Fedora 9 Linux. Thanks to Roxis. *) Bugfix: a segmentation fault might occur in worker process on Linux, if keepalive was enabled.
author Igor Sysoev <http://sysoev.ru>
date Mon, 07 Jul 2008 00:00:00 +0400
parents babd3d9efb62
children
comparison
equal deleted inserted replaced
375:52f3c9c7eff0 376:d13234035cad
98 ngx_http_ssi_ctx_t *ctx, ngx_str_t **params); 98 ngx_http_ssi_ctx_t *ctx, ngx_str_t **params);
99 static ngx_int_t ngx_http_ssi_endblock(ngx_http_request_t *r, 99 static ngx_int_t ngx_http_ssi_endblock(ngx_http_request_t *r,
100 ngx_http_ssi_ctx_t *ctx, ngx_str_t **params); 100 ngx_http_ssi_ctx_t *ctx, ngx_str_t **params);
101 101
102 static ngx_int_t ngx_http_ssi_date_gmt_local_variable(ngx_http_request_t *r, 102 static ngx_int_t ngx_http_ssi_date_gmt_local_variable(ngx_http_request_t *r,
103 ngx_http_variable_value_t *v, uintptr_t gmt); 103 ngx_http_variable_value_t *v, uintptr_t gmt);
104 104
105 static char *ngx_http_ssi_types(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); 105 static char *ngx_http_ssi_types(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
106 106
107 static ngx_int_t ngx_http_ssi_preconfiguration(ngx_conf_t *cf); 107 static ngx_int_t ngx_http_ssi_preconfiguration(ngx_conf_t *cf);
108 static void *ngx_http_ssi_create_main_conf(ngx_conf_t *cf); 108 static void *ngx_http_ssi_create_main_conf(ngx_conf_t *cf);
556 b->recycled = 0; 556 b->recycled = 0;
557 557
558 if (b->in_file) { 558 if (b->in_file) {
559 if (slcf->min_file_chunk < (size_t) (b->last - b->pos)) 559 if (slcf->min_file_chunk < (size_t) (b->last - b->pos))
560 { 560 {
561 b->file_last = b->file_pos + (b->last - b->start); 561 b->file_last = b->file_pos
562 b->file_pos += b->pos - b->start; 562 + (b->last - ctx->buf->pos);
563 b->file_pos += b->pos - ctx->buf->pos;
563 564
564 } else { 565 } else {
565 b->in_file = 0; 566 b->in_file = 0;
566 } 567 }
567 } 568 }
1635 } 1636 }
1636 } 1637 }
1637 1638
1638 quoted = 0; 1639 quoted = 0;
1639 1640
1640 for (i = 0 ; i < text->len; i++) { 1641 for (i = 0; i < text->len; i++) {
1641 ch = text->data[i]; 1642 ch = text->data[i];
1642 1643
1643 if (!quoted) { 1644 if (!quoted) {
1644 1645
1645 if (ch == '\\') { 1646 if (ch == '\\') {
2645 } 2646 }
2646 2647
2647 2648
2648 static ngx_int_t 2649 static ngx_int_t
2649 ngx_http_ssi_date_gmt_local_variable(ngx_http_request_t *r, 2650 ngx_http_ssi_date_gmt_local_variable(ngx_http_request_t *r,
2650 ngx_http_variable_value_t *v, uintptr_t gmt) 2651 ngx_http_variable_value_t *v, uintptr_t gmt)
2651 { 2652 {
2652 ngx_http_ssi_ctx_t *ctx; 2653 ngx_http_ssi_ctx_t *ctx;
2653 ngx_time_t *tp; 2654 ngx_time_t *tp;
2654 struct tm tm; 2655 struct tm tm;
2655 char buf[NGX_HTTP_SSI_DATE_LEN]; 2656 char buf[NGX_HTTP_SSI_DATE_LEN];