export symbol session_manager_lookup_session_by_packet/id()

This commit is contained in:
luwenpeng
2024-11-19 18:35:40 +08:00
parent c2e9275a9e
commit b76949b0e4
3 changed files with 32 additions and 2 deletions

View File

@@ -150,6 +150,8 @@ void *session_get_exdata(const struct session *sess, int idx);
struct session_manager; struct session_manager;
struct session_manager *module_to_session_manager(struct module *mod); struct session_manager *module_to_session_manager(struct module *mod);
int session_manager_new_session_exdata_index(struct session_manager *sess_mgr, const char *name, exdata_free *func, void *arg); int session_manager_new_session_exdata_index(struct session_manager *sess_mgr, const char *name, exdata_free *func, void *arg);
struct session *session_manager_lookup_session_by_packet(struct session_manager *sess_mgr, uint16_t thread_id, const struct packet *pkt);
struct session *session_manager_lookup_session_by_id(struct session_manager *sess_mgr, uint16_t thread_id, uint64_t sess_id);
struct session *packet_exdata_to_session(struct packet *pkt); struct session *packet_exdata_to_session(struct packet *pkt);

View File

@@ -337,6 +337,26 @@ int session_manager_new_session_exdata_index(struct session_manager *sess_mgr, c
return exdata_schema_new_index(sess_mgr->ex_sche, name, func, arg); return exdata_schema_new_index(sess_mgr->ex_sche, name, func, arg);
} }
struct session *session_manager_lookup_session_by_packet(struct session_manager *sess_mgr, uint16_t thread_id, const struct packet *pkt)
{
struct session_manager_rte *rte = session_manager_get_rte(sess_mgr, thread_id);
if (rte == NULL)
{
return NULL;
}
return session_manager_rte_lookup_session_by_packet(rte, pkt);
}
struct session *session_manager_lookup_session_by_id(struct session_manager *sess_mgr, uint16_t thread_id, uint64_t sess_id)
{
struct session_manager_rte *rte = session_manager_get_rte(sess_mgr, thread_id);
if (rte == NULL)
{
return NULL;
}
return session_manager_rte_lookup_session_by_id(rte, sess_id);
}
int session_manager_init(struct session_manager *sess_mgr, uint16_t thread_id) int session_manager_init(struct session_manager *sess_mgr, uint16_t thread_id)
{ {
assert(sess_mgr); assert(sess_mgr);
@@ -462,8 +482,14 @@ void session_manager_on_thread_exit(struct module_manager *mod_mgr, int thread_i
struct session_manager_rte *session_manager_get_rte(struct session_manager *sess_mgr, uint16_t thread_id) struct session_manager_rte *session_manager_get_rte(struct session_manager *sess_mgr, uint16_t thread_id)
{ {
assert(sess_mgr); assert(sess_mgr);
assert(thread_id < sess_mgr->cfg->thread_num); if (thread_id < sess_mgr->cfg->thread_num)
return sess_mgr->rte[thread_id]; {
return sess_mgr->rte[thread_id];
}
else
{
return NULL;
}
} }
struct session_manager_cfg *session_manager_get_cfg(struct session_manager *sess_mgr) struct session_manager_cfg *session_manager_get_cfg(struct session_manager *sess_mgr)

View File

@@ -48,6 +48,8 @@ global:
session_manager_on_thread_init; session_manager_on_thread_init;
session_manager_on_thread_exit; session_manager_on_thread_exit;
session_manager_new_session_exdata_index; session_manager_new_session_exdata_index;
session_manager_lookup_session_by_packet;
session_manager_lookup_session_by_id;
packet_exdata_to_session; packet_exdata_to_session;
session_monitor_on_init; session_monitor_on_init;