Mercurial > hg > nginx-quic
comparison src/event/ngx_event_openssl.c @ 969:065b39794fff
ngx_ssl_get_server_conf()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 02 Jan 2007 23:37:25 +0000 |
parents | 1b60ecc8cdb7 |
children | 8dfb3aa75de2 |
comparison
equal
deleted
inserted
replaced
968:1b60ecc8cdb7 | 969:065b39794fff |
---|---|
82 SSL_OP_NO_SSLv2, | 82 SSL_OP_NO_SSLv2, |
83 0, | 83 0, |
84 }; | 84 }; |
85 | 85 |
86 | 86 |
87 int ngx_connection_index; | 87 int ngx_ssl_connection_index; |
88 int ngx_ssl_server_conf_index; | |
88 | 89 |
89 | 90 |
90 ngx_int_t | 91 ngx_int_t |
91 ngx_ssl_init(ngx_log_t *log) | 92 ngx_ssl_init(ngx_log_t *log) |
92 { | 93 { |
99 | 100 |
100 #if (NGX_SSL_ENGINE) | 101 #if (NGX_SSL_ENGINE) |
101 ENGINE_load_builtin_engines(); | 102 ENGINE_load_builtin_engines(); |
102 #endif | 103 #endif |
103 | 104 |
104 ngx_connection_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL); | 105 ngx_ssl_connection_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL); |
105 | 106 |
106 if (ngx_connection_index == -1) { | 107 if (ngx_ssl_connection_index == -1) { |
107 ngx_ssl_error(NGX_LOG_ALERT, log, 0, "SSL_get_ex_new_index() failed"); | 108 ngx_ssl_error(NGX_LOG_ALERT, log, 0, "SSL_get_ex_new_index() failed"); |
108 return NGX_ERROR; | 109 return NGX_ERROR; |
109 } | 110 } |
110 | 111 |
112 ngx_ssl_server_conf_index = SSL_CTX_get_ex_new_index(0, NULL, NULL, NULL, | |
113 NULL); | |
114 if (ngx_ssl_server_conf_index == -1) { | |
115 ngx_ssl_error(NGX_LOG_ALERT, log, 0, | |
116 "SSL_CTX_get_ex_new_index() failed"); | |
117 return NGX_ERROR; | |
118 } | |
119 | |
111 return NGX_OK; | 120 return NGX_OK; |
112 } | 121 } |
113 | 122 |
114 | 123 |
115 ngx_int_t | 124 ngx_int_t |
116 ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols) | 125 ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data) |
117 { | 126 { |
118 ssl->ctx = SSL_CTX_new(SSLv23_method()); | 127 ssl->ctx = SSL_CTX_new(SSLv23_method()); |
119 | 128 |
120 if (ssl->ctx == NULL) { | 129 if (ssl->ctx == NULL) { |
121 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, "SSL_CTX_new() failed"); | 130 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, "SSL_CTX_new() failed"); |
131 return NGX_ERROR; | |
132 } | |
133 | |
134 if (SSL_CTX_set_ex_data(ssl->ctx, ngx_ssl_server_conf_index, data) == 0) { | |
135 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, | |
136 "SSL_CTX_set_ex_data() failed"); | |
122 return NGX_ERROR; | 137 return NGX_ERROR; |
123 } | 138 } |
124 | 139 |
125 /* client side options */ | 140 /* client side options */ |
126 | 141 |
334 | 349 |
335 } else { | 350 } else { |
336 SSL_set_accept_state(sc->connection); | 351 SSL_set_accept_state(sc->connection); |
337 } | 352 } |
338 | 353 |
339 if (SSL_set_ex_data(sc->connection, ngx_connection_index, c) == 0) { | 354 if (SSL_set_ex_data(sc->connection, ngx_ssl_connection_index, c) == 0) { |
340 ngx_ssl_error(NGX_LOG_ALERT, c->log, 0, "SSL_set_ex_data() failed"); | 355 ngx_ssl_error(NGX_LOG_ALERT, c->log, 0, "SSL_set_ex_data() failed"); |
341 return NGX_ERROR; | 356 return NGX_ERROR; |
342 } | 357 } |
343 | 358 |
344 c->ssl = sc; | 359 c->ssl = sc; |