mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-10 08:46:58 +08:00
deinitialize the TLS cache prior to fork
This commit is contained in:
@@ -305,6 +305,8 @@ void clear_lists(main_server_st *s)
|
||||
close(ctmp->fd);
|
||||
list_del(&ctmp->list);
|
||||
}
|
||||
|
||||
tls_cache_deinit(s->tls_db);
|
||||
}
|
||||
|
||||
static void kill_children(struct proc_list_st* clist)
|
||||
|
||||
20
src/tlslib.c
20
src/tlslib.c
@@ -129,3 +129,23 @@ tls_cache_db_st * db;
|
||||
|
||||
*_db = db;
|
||||
}
|
||||
|
||||
void tls_cache_deinit(tls_cache_db_st* db)
|
||||
{
|
||||
tls_cache_st* cache;
|
||||
int bkt;
|
||||
struct hlist_node *pos, *tmp;
|
||||
|
||||
hash_for_each_safe(db->entry, bkt, pos, tmp, cache, list) {
|
||||
if (cache->session_data_size > 0) {
|
||||
memset(cache->session_data, 0, cache->session_data_size);
|
||||
cache->session_data_size = 0;
|
||||
cache->session_id_size = 0;
|
||||
}
|
||||
hash_del(&cache->list);
|
||||
free(cache);
|
||||
db->entries--;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -59,5 +59,6 @@ typedef struct
|
||||
} tls_cache_db_st;
|
||||
|
||||
void tls_cache_init(struct cfg_st* config, tls_cache_db_st** db);
|
||||
void tls_cache_deinit(tls_cache_db_st* db);
|
||||
|
||||
#endif
|
||||
|
||||
12
src/tun.h
12
src/tun.h
@@ -37,6 +37,18 @@ inline static void tun_st_init(struct tun_st* ts)
|
||||
INIT_LIST_HEAD(&ts->lease_list.list);
|
||||
}
|
||||
|
||||
inline static void tun_st_deinit(struct tun_st* ts)
|
||||
{
|
||||
struct list_head *cq;
|
||||
struct list_head *pos;
|
||||
struct lease_st *ltmp;
|
||||
|
||||
list_for_each_safe(pos, cq, &ts->lease_list.list) {
|
||||
ltmp = list_entry(pos, struct lease_st, list);
|
||||
list_del(<mp->list);
|
||||
}
|
||||
}
|
||||
|
||||
int open_tun(const struct cfg_st *config, struct tun_st* tun, struct lease_st **lease);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user