diff options
Diffstat (limited to 'src/http/modules')
-rw-r--r-- | src/http/modules/ngx_http_charset_filter_module.c | 23 | ||||
-rw-r--r-- | src/http/modules/ngx_http_ssl_module.c | 15 |
2 files changed, 25 insertions, 13 deletions
diff --git a/src/http/modules/ngx_http_charset_filter_module.c b/src/http/modules/ngx_http_charset_filter_module.c index 0139cc671..98919ae2f 100644 --- a/src/http/modules/ngx_http_charset_filter_module.c +++ b/src/http/modules/ngx_http_charset_filter_module.c @@ -187,7 +187,7 @@ ngx_http_charset_header_filter(ngx_http_request_t *r) { u_char *ct; ngx_int_t charset, source_charset; - ngx_str_t *mc, *from, *to; + ngx_str_t *mc, *from, *to, s; ngx_uint_t n; ngx_http_charset_t *charsets; ngx_http_charset_ctx_t *ctx; @@ -256,8 +256,10 @@ ngx_http_charset_header_filter(ngx_http_request_t *r) return NGX_ERROR; } - charset = ngx_http_charset_get_charset(charsets, n, - (ngx_str_t *) vv); + s.len = vv->len; + s.data = vv->data; + + charset = ngx_http_charset_get_charset(charsets, n, &s); } } @@ -303,8 +305,10 @@ ngx_http_charset_header_filter(ngx_http_request_t *r) return NGX_ERROR; } - source_charset = ngx_http_charset_get_charset(charsets, n, - (ngx_str_t *) vv); + s.len = vv->len; + s.data = vv->data; + + source_charset = ngx_http_charset_get_charset(charsets, n, &s); } if (charset != NGX_HTTP_NO_CHARSET) { @@ -373,17 +377,16 @@ static ngx_int_t ngx_http_charset_get_charset(ngx_http_charset_t *charsets, ngx_uint_t n, ngx_str_t *charset) { - size_t len; ngx_uint_t i; - len = charset->len & 0xffff; - for (i = 0; i < n; i++) { - if (charsets[i].name.len != len) { + if (charsets[i].name.len != charset->len) { continue; } - if (ngx_strncasecmp(charsets[i].name.data, charset->data, len) == 0) { + if (ngx_strncasecmp(charsets[i].name.data, charset->data, charset->len) + == 0) + { return i; } } diff --git a/src/http/modules/ngx_http_ssl_module.c b/src/http/modules/ngx_http_ssl_module.c index 7376d1028..1ffa54fb5 100644 --- a/src/http/modules/ngx_http_ssl_module.c +++ b/src/http/modules/ngx_http_ssl_module.c @@ -197,11 +197,14 @@ ngx_http_ssl_static_variable(ngx_http_request_t *r, { ngx_ssl_variable_handler_pt handler = (ngx_ssl_variable_handler_pt) data; - size_t len; + size_t len; + ngx_str_t s; if (r->connection->ssl) { - (void) handler(r->connection, NULL, (ngx_str_t *) v); + (void) handler(r->connection, NULL, &s); + + v->data = s.data; for (len = 0; v->data[len]; len++) { /* void */ } @@ -225,11 +228,17 @@ ngx_http_ssl_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v, { ngx_ssl_variable_handler_pt handler = (ngx_ssl_variable_handler_pt) data; + ngx_str_t s; + if (r->connection->ssl) { - if (handler(r->connection, r->pool, (ngx_str_t *) v) != NGX_OK) { + + if (handler(r->connection, r->pool, &s) != NGX_OK) { return NGX_ERROR; } + v->len = s.len; + v->data = s.data; + if (v->len) { v->valid = 1; v->no_cachable = 0; |