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);