comparison src/event/ngx_event_openssl.c @ 1757:7ab8bd535eed

use ngx_time() instead of ngx_timeofday()
author Igor Sysoev <igor@sysoev.ru>
date Thu, 20 Dec 2007 20:11:45 +0000
parents f28ba0f698f3
children 34e88556c15e
comparison
equal deleted inserted replaced
1756:f28ba0f698f3 1757:7ab8bd535eed
1279 { 1279 {
1280 int len; 1280 int len;
1281 u_char *p, *id, *cached_sess; 1281 u_char *p, *id, *cached_sess;
1282 uint32_t hash; 1282 uint32_t hash;
1283 SSL_CTX *ssl_ctx; 1283 SSL_CTX *ssl_ctx;
1284 ngx_time_t *tp;
1285 ngx_shm_zone_t *shm_zone; 1284 ngx_shm_zone_t *shm_zone;
1286 ngx_connection_t *c; 1285 ngx_connection_t *c;
1287 ngx_slab_pool_t *shpool; 1286 ngx_slab_pool_t *shpool;
1288 ngx_ssl_sess_id_t *sess_id; 1287 ngx_ssl_sess_id_t *sess_id;
1289 ngx_ssl_session_cache_t *cache; 1288 ngx_ssl_session_cache_t *cache;
1355 1354
1356 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, 1355 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,
1357 "http ssl new session: %08XD:%d:%d", 1356 "http ssl new session: %08XD:%d:%d",
1358 hash, sess->session_id_length, len); 1357 hash, sess->session_id_length, len);
1359 1358
1360 tp = ngx_timeofday();
1361
1362 sess_id->node.key = hash; 1359 sess_id->node.key = hash;
1363 sess_id->node.data = (u_char) sess->session_id_length; 1360 sess_id->node.data = (u_char) sess->session_id_length;
1364 sess_id->id = id; 1361 sess_id->id = id;
1365 sess_id->len = len; 1362 sess_id->len = len;
1366 sess_id->session = cached_sess; 1363 sess_id->session = cached_sess;
1367 1364
1368 sess_id->expire = tp->sec + SSL_CTX_get_timeout(ssl_ctx); 1365 sess_id->expire = ngx_time() + SSL_CTX_get_timeout(ssl_ctx);
1369 1366
1370 sess_id->next = cache->session_cache_head.next; 1367 sess_id->next = cache->session_cache_head.next;
1371 sess_id->next->prev = sess_id; 1368 sess_id->next->prev = sess_id;
1372 sess_id->prev = &cache->session_cache_head; 1369 sess_id->prev = &cache->session_cache_head;
1373 cache->session_cache_head.next = sess_id; 1370 cache->session_cache_head.next = sess_id;
1405 const 1402 const
1406 #endif 1403 #endif
1407 u_char *p; 1404 u_char *p;
1408 uint32_t hash; 1405 uint32_t hash;
1409 ngx_int_t rc; 1406 ngx_int_t rc;
1410 ngx_time_t *tp;
1411 ngx_shm_zone_t *shm_zone; 1407 ngx_shm_zone_t *shm_zone;
1412 ngx_slab_pool_t *shpool; 1408 ngx_slab_pool_t *shpool;
1413 ngx_connection_t *c; 1409 ngx_connection_t *c;
1414 ngx_rbtree_node_t *node, *sentinel; 1410 ngx_rbtree_node_t *node, *sentinel;
1415 ngx_ssl_session_t *sess; 1411 ngx_ssl_session_t *sess;
1462 1458
1463 rc = ngx_memn2cmp(id, sess_id->id, 1459 rc = ngx_memn2cmp(id, sess_id->id,
1464 (size_t) len, (size_t) node->data); 1460 (size_t) len, (size_t) node->data);
1465 if (rc == 0) { 1461 if (rc == 0) {
1466 1462
1467 tp = ngx_timeofday(); 1463 if (sess_id->expire > ngx_time()) {
1468
1469 if (sess_id->expire > tp->sec) {
1470 ngx_memcpy(buf, sess_id->session, sess_id->len); 1464 ngx_memcpy(buf, sess_id->session, sess_id->len);
1471 1465
1472 ngx_shmtx_unlock(&shpool->mutex); 1466 ngx_shmtx_unlock(&shpool->mutex);
1473 1467
1474 p = buf; 1468 p = buf;
1589 1583
1590 static void 1584 static void
1591 ngx_ssl_expire_sessions(ngx_ssl_session_cache_t *cache, 1585 ngx_ssl_expire_sessions(ngx_ssl_session_cache_t *cache,
1592 ngx_slab_pool_t *shpool, ngx_uint_t n) 1586 ngx_slab_pool_t *shpool, ngx_uint_t n)
1593 { 1587 {
1594 ngx_time_t *tp; 1588 time_t now;
1595 ngx_ssl_sess_id_t *sess_id; 1589 ngx_ssl_sess_id_t *sess_id;
1596 1590
1597 tp = ngx_timeofday(); 1591 now = ngx_time();
1598 1592
1599 while (n < 3) { 1593 while (n < 3) {
1600 1594
1601 sess_id = cache->session_cache_tail.prev; 1595 sess_id = cache->session_cache_tail.prev;
1602 1596
1603 if (sess_id == &cache->session_cache_head) { 1597 if (sess_id == &cache->session_cache_head) {
1604 return; 1598 return;
1605 } 1599 }
1606 1600
1607 if (n++ != 0 && sess_id->expire > tp->sec) { 1601 if (n++ != 0 && sess_id->expire > now) {
1608 return; 1602 return;
1609 } 1603 }
1610 1604
1611 sess_id->next->prev = sess_id->prev; 1605 sess_id->next->prev = sess_id->prev;
1612 sess_id->prev->next = sess_id->next; 1606 sess_id->prev->next = sess_id->next;