comparison src/http/modules/ngx_http_ssl_module.c @ 320:95183808f549 NGINX_0_6_4

nginx 0.6.4 *) Security: the "msie_refresh" directive allowed XSS. Thanks to Maxim Boguk. *) Change: the "proxy_store" and "fastcgi_store" directives were changed. *) Feature: the "proxy_store_access" and "fastcgi_store_access" directives. *) Bugfix: nginx did not work on Solaris/sparc64 if it was built by Sun Studio. Thanks to Andrei Nigmatulin. *) Workaround: for Sun Studio 12. Thanks to Jiang Hong.
author Igor Sysoev <http://sysoev.ru>
date Tue, 17 Jul 2007 00:00:00 +0400
parents 55328d69b335
children 10cc350ed8a1
comparison
equal deleted inserted replaced
319:6ccd0af7f704 320:95183808f549
195 ngx_http_ssl_static_variable(ngx_http_request_t *r, 195 ngx_http_ssl_static_variable(ngx_http_request_t *r,
196 ngx_http_variable_value_t *v, uintptr_t data) 196 ngx_http_variable_value_t *v, uintptr_t data)
197 { 197 {
198 ngx_ssl_variable_handler_pt handler = (ngx_ssl_variable_handler_pt) data; 198 ngx_ssl_variable_handler_pt handler = (ngx_ssl_variable_handler_pt) data;
199 199
200 size_t len; 200 size_t len;
201 ngx_str_t s;
201 202
202 if (r->connection->ssl) { 203 if (r->connection->ssl) {
203 204
204 (void) handler(r->connection, NULL, (ngx_str_t *) v); 205 (void) handler(r->connection, NULL, &s);
206
207 v->data = s.data;
205 208
206 for (len = 0; v->data[len]; len++) { /* void */ } 209 for (len = 0; v->data[len]; len++) { /* void */ }
207 210
208 v->len = len; 211 v->len = len;
209 v->valid = 1; 212 v->valid = 1;
223 ngx_http_ssl_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v, 226 ngx_http_ssl_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v,
224 uintptr_t data) 227 uintptr_t data)
225 { 228 {
226 ngx_ssl_variable_handler_pt handler = (ngx_ssl_variable_handler_pt) data; 229 ngx_ssl_variable_handler_pt handler = (ngx_ssl_variable_handler_pt) data;
227 230
231 ngx_str_t s;
232
228 if (r->connection->ssl) { 233 if (r->connection->ssl) {
229 if (handler(r->connection, r->pool, (ngx_str_t *) v) != NGX_OK) { 234
235 if (handler(r->connection, r->pool, &s) != NGX_OK) {
230 return NGX_ERROR; 236 return NGX_ERROR;
231 } 237 }
238
239 v->len = s.len;
240 v->data = s.data;
232 241
233 if (v->len) { 242 if (v->len) {
234 v->valid = 1; 243 v->valid = 1;
235 v->no_cachable = 0; 244 v->no_cachable = 0;
236 v->not_found = 0; 245 v->not_found = 0;