会话缓存管理 作者:Rainbow(不经历风雨,怎么见彩虹) 创作时间:2002-10-1 /******************************************************************************************************************** 声明:本文档用于学习与研究可以自由转载,无论以何种形式发布都必须保留完整的版权声明,商业用途不得转载.本人能力有限,如有问题欢迎交流与指正。 网站: 论坛:/forum/forum.html 邮件:rainbow_zrh@sina.com webmaster@infosecurity.org.cn *********************************************************************************************************************/
会话缓存函数在ssl_scache(_XXXX)._c中实现,其中的XXXX代表dbm, shmht, shmcb或者为空。Ssl_scache_init/kill/store….等为会话缓存的通用抽象层,下面以dbm为例进行说明。 1、ssl_scache_(XXXX)_init 【功能】:初始化函数 【过程描述】:ssl_mutex_on打开互斥体,打开数据库,ssl_dbm_close关闭数据库,关闭互斥体, 2、ssl_scache_(XXXX)_kill 【功能】:删除文件 【过程描述】:分配内存ap_make_sub_pool,删除文件。 3、ssl_scache_(XXXX)_store 【功能】: 【过程描述】:i2d_SSL_SESSION将会话ID进行编码,建立DBM关键字和值,ssl_dbm_open打开文件,ssl_dbm_store存贮内容,ssl_dbm_close关闭文件, 4、ssl_scache_(XXXX)_retrieve 【功能】:取数据 【过程描述】:创建键值对,打开DBM文件,ssl_dbm_fetch取值,关闭,ssl_scache_dbm_remove删除数据,由d2i_SSL_SESSION函数转换成内部结构,并返回。 5、ssl_scache_(XXXX)_remove 【功能】:删除一个值。 【过程描述】:打开互斥体和文件,删除值,关闭文件与互斥体。 6、ssl_scache_(XXXX)_expire 【功能】:删除过期的数据。 【过程描述】:第一步,扫描DBM数据库ssl_dbm_firstkey检找指定key对应的值取数据,比较时间,找下一个数据ssl_dbm_nextkey,循环直到找完。第二步,删除过期的元素。打开文件,删除数据,关闭文件。 7、ssl_scache_(XXXX)_status 【功能】:查询内部的运行状态。 【过程描述】:遍历数据库,统计元素的个数与大小,求平均。
|