Mercurial > hg > nginx
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; |