Split session_manager_dispatch into session_manager_dispatch and session_manager_expire

This commit is contained in:
luwenpeng
2023-12-22 18:18:21 +08:00
parent 6ed321caea
commit b353c9c824
3 changed files with 202 additions and 285 deletions

View File

@@ -27,12 +27,15 @@ void session_manager_destroy(struct session_manager *mgr);
// config
typedef void (*session_event_cb)(struct session *sess, uint32_t event, void *arg);
void session_manager_set_session_eventcb(struct session_manager *mgr, session_event_cb cb, void *arg);
void session_manager_set_packet_timeout(struct session_manager *mgr, uint64_t timeout_ms);
void session_manager_set_closing_timeout(struct session_manager *mgr, uint64_t timeout_ms);
void session_manager_set_timeout_toclosing(struct session_manager *mgr, uint64_t timeout_ms);
void session_manager_set_timeout_toclosed(struct session_manager *mgr, uint64_t timeout_ms);
// core functions
struct session *session_manager_find_session(struct session_manager *mgr, const struct packet *pkt);
void session_manager_dispatch(struct session_manager *mgr);
struct session *session_manager_lookup(struct session_manager *mgr, const struct packet *pkt);
// return null: Invalid tuple6 or tcp first packet is not syn
struct session *session_manager_update(struct session_manager *mgr, const struct packet *pkt);
struct session *session_manager_expire(struct session_manager *mgr);
void session_manager_dispatch(struct session_manager *mgr, struct session *sess);
// for debug
uint64_t session_manager_get_tcp_opening_sess_num(struct session_manager *mgr);