Mercurial > hg > nginx
comparison src/event/ngx_event_openssl.c @ 6487:9dd43f4ef67e
SSL: get_session callback changed in OpenSSL 1.1.0.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 31 Mar 2016 23:38:32 +0300 |
parents | 978ad80b3732 |
children | a57b2b8999e7 |
comparison
equal
deleted
inserted
replaced
6486:978ad80b3732 | 6487:9dd43f4ef67e |
---|---|
37 ngx_str_t *sess_ctx); | 37 ngx_str_t *sess_ctx); |
38 ngx_int_t ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data); | 38 ngx_int_t ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data); |
39 static int ngx_ssl_new_session(ngx_ssl_conn_t *ssl_conn, | 39 static int ngx_ssl_new_session(ngx_ssl_conn_t *ssl_conn, |
40 ngx_ssl_session_t *sess); | 40 ngx_ssl_session_t *sess); |
41 static ngx_ssl_session_t *ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn, | 41 static ngx_ssl_session_t *ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn, |
42 #if OPENSSL_VERSION_NUMBER >= 0x10100003L | |
43 const | |
44 #endif | |
42 u_char *id, int len, int *copy); | 45 u_char *id, int len, int *copy); |
43 static void ngx_ssl_remove_session(SSL_CTX *ssl, ngx_ssl_session_t *sess); | 46 static void ngx_ssl_remove_session(SSL_CTX *ssl, ngx_ssl_session_t *sess); |
44 static void ngx_ssl_expire_sessions(ngx_ssl_session_cache_t *cache, | 47 static void ngx_ssl_expire_sessions(ngx_ssl_session_cache_t *cache, |
45 ngx_slab_pool_t *shpool, ngx_uint_t n); | 48 ngx_slab_pool_t *shpool, ngx_uint_t n); |
46 static void ngx_ssl_session_rbtree_insert_value(ngx_rbtree_node_t *temp, | 49 static void ngx_ssl_session_rbtree_insert_value(ngx_rbtree_node_t *temp, |
2443 return 0; | 2446 return 0; |
2444 } | 2447 } |
2445 | 2448 |
2446 | 2449 |
2447 static ngx_ssl_session_t * | 2450 static ngx_ssl_session_t * |
2448 ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn, u_char *id, int len, | 2451 ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn, |
2449 int *copy) | 2452 #if OPENSSL_VERSION_NUMBER >= 0x10100003L |
2453 const | |
2454 #endif | |
2455 u_char *id, int len, int *copy) | |
2450 { | 2456 { |
2451 #if OPENSSL_VERSION_NUMBER >= 0x0090707fL | 2457 #if OPENSSL_VERSION_NUMBER >= 0x0090707fL |
2452 const | 2458 const |
2453 #endif | 2459 #endif |
2454 u_char *p; | 2460 u_char *p; |
2461 ngx_ssl_sess_id_t *sess_id; | 2467 ngx_ssl_sess_id_t *sess_id; |
2462 ngx_ssl_session_cache_t *cache; | 2468 ngx_ssl_session_cache_t *cache; |
2463 u_char buf[NGX_SSL_MAX_SESSION_SIZE]; | 2469 u_char buf[NGX_SSL_MAX_SESSION_SIZE]; |
2464 ngx_connection_t *c; | 2470 ngx_connection_t *c; |
2465 | 2471 |
2466 hash = ngx_crc32_short(id, (size_t) len); | 2472 hash = ngx_crc32_short((u_char *) (uintptr_t) id, (size_t) len); |
2467 *copy = 0; | 2473 *copy = 0; |
2468 | 2474 |
2469 c = ngx_ssl_get_connection(ssl_conn); | 2475 c = ngx_ssl_get_connection(ssl_conn); |
2470 | 2476 |
2471 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0, | 2477 ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0, |
2499 | 2505 |
2500 /* hash == node->key */ | 2506 /* hash == node->key */ |
2501 | 2507 |
2502 sess_id = (ngx_ssl_sess_id_t *) node; | 2508 sess_id = (ngx_ssl_sess_id_t *) node; |
2503 | 2509 |
2504 rc = ngx_memn2cmp(id, sess_id->id, (size_t) len, (size_t) node->data); | 2510 rc = ngx_memn2cmp((u_char *) (uintptr_t) id, sess_id->id, |
2511 (size_t) len, (size_t) node->data); | |
2505 | 2512 |
2506 if (rc == 0) { | 2513 if (rc == 0) { |
2507 | 2514 |
2508 if (sess_id->expire > ngx_time()) { | 2515 if (sess_id->expire > ngx_time()) { |
2509 ngx_memcpy(buf, sess_id->session, sess_id->len); | 2516 ngx_memcpy(buf, sess_id->session, sess_id->len); |