Mercurial > hg > nginx-vendor-current
comparison src/http/modules/ngx_http_ssl_module.c @ 340:10cc350ed8a1 NGINX_0_6_14
nginx 0.6.14
*) Change: now by default the "echo" SSI command uses entity encoding.
*) Feature: the "encoding" parameter in the "echo" SSI command.
*) Feature: the "access_log" directive may be used inside the
"limit_except" block.
*) Bugfix: if all upstream servers were failed, then all servers had
got weight the was equal one until servers became alive; bug
appeared in 0.6.6.
*) Bugfix: a segmentation fault occurred in worker process if
$date_local and $date_gmt were used outside the
ngx_http_ssi_filter_module.
*) Bugfix: a segmentation fault might occur in worker process if debug
log was enabled.
Thanks to Andrei Nigmatulin.
*) Bugfix: ngx_http_memcached_module did not set
$upstream_response_time.
Thanks to Maxim Dounin.
*) Bugfix: a worker process may got caught in an endless loop, if the
memcached was used.
*) Bugfix: nginx supported low case only "close" and "keep-alive"
values in the "Connection" request header line; bug appeared in
0.6.11.
*) Bugfix: sub_filter did not work with empty substitution.
*) Bugfix: in sub_filter parsing.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 15 Oct 2007 00:00:00 +0400 |
parents | 95183808f549 |
children | 9121a0a91f47 |
comparison
equal
deleted
inserted
replaced
339:d19550b67059 | 340:10cc350ed8a1 |
---|---|
168 | 168 |
169 | 169 |
170 static ngx_http_variable_t ngx_http_ssl_vars[] = { | 170 static ngx_http_variable_t ngx_http_ssl_vars[] = { |
171 | 171 |
172 { ngx_string("ssl_protocol"), NULL, ngx_http_ssl_static_variable, | 172 { ngx_string("ssl_protocol"), NULL, ngx_http_ssl_static_variable, |
173 (uintptr_t) ngx_ssl_get_protocol, NGX_HTTP_VAR_CHANGABLE, 0 }, | 173 (uintptr_t) ngx_ssl_get_protocol, NGX_HTTP_VAR_CHANGEABLE, 0 }, |
174 | 174 |
175 { ngx_string("ssl_cipher"), NULL, ngx_http_ssl_static_variable, | 175 { ngx_string("ssl_cipher"), NULL, ngx_http_ssl_static_variable, |
176 (uintptr_t) ngx_ssl_get_cipher_name, NGX_HTTP_VAR_CHANGABLE, 0 }, | 176 (uintptr_t) ngx_ssl_get_cipher_name, NGX_HTTP_VAR_CHANGEABLE, 0 }, |
177 | 177 |
178 { ngx_string("ssl_client_s_dn"), NULL, ngx_http_ssl_variable, | 178 { ngx_string("ssl_client_s_dn"), NULL, ngx_http_ssl_variable, |
179 (uintptr_t) ngx_ssl_get_subject_dn, NGX_HTTP_VAR_CHANGABLE, 0 }, | 179 (uintptr_t) ngx_ssl_get_subject_dn, NGX_HTTP_VAR_CHANGEABLE, 0 }, |
180 | 180 |
181 { ngx_string("ssl_client_i_dn"), NULL, ngx_http_ssl_variable, | 181 { ngx_string("ssl_client_i_dn"), NULL, ngx_http_ssl_variable, |
182 (uintptr_t) ngx_ssl_get_issuer_dn, NGX_HTTP_VAR_CHANGABLE, 0 }, | 182 (uintptr_t) ngx_ssl_get_issuer_dn, NGX_HTTP_VAR_CHANGEABLE, 0 }, |
183 | 183 |
184 { ngx_string("ssl_client_serial"), NULL, ngx_http_ssl_variable, | 184 { ngx_string("ssl_client_serial"), NULL, ngx_http_ssl_variable, |
185 (uintptr_t) ngx_ssl_get_serial_number, NGX_HTTP_VAR_CHANGABLE, 0 }, | 185 (uintptr_t) ngx_ssl_get_serial_number, NGX_HTTP_VAR_CHANGEABLE, 0 }, |
186 | 186 |
187 { ngx_null_string, NULL, NULL, 0, 0, 0 } | 187 { ngx_null_string, NULL, NULL, 0, 0, 0 } |
188 }; | 188 }; |
189 | 189 |
190 | 190 |
208 | 208 |
209 for (len = 0; v->data[len]; len++) { /* void */ } | 209 for (len = 0; v->data[len]; len++) { /* void */ } |
210 | 210 |
211 v->len = len; | 211 v->len = len; |
212 v->valid = 1; | 212 v->valid = 1; |
213 v->no_cachable = 0; | 213 v->no_cacheable = 0; |
214 v->not_found = 0; | 214 v->not_found = 0; |
215 | 215 |
216 return NGX_OK; | 216 return NGX_OK; |
217 } | 217 } |
218 | 218 |
239 v->len = s.len; | 239 v->len = s.len; |
240 v->data = s.data; | 240 v->data = s.data; |
241 | 241 |
242 if (v->len) { | 242 if (v->len) { |
243 v->valid = 1; | 243 v->valid = 1; |
244 v->no_cachable = 0; | 244 v->no_cacheable = 0; |
245 v->not_found = 0; | 245 v->not_found = 0; |
246 | 246 |
247 return NGX_OK; | 247 return NGX_OK; |
248 } | 248 } |
249 } | 249 } |