diff options
| author | luwenpeng <[email protected]> | 2024-11-19 18:35:40 +0800 |
|---|---|---|
| committer | luwenpeng <[email protected]> | 2024-11-19 18:54:04 +0800 |
| commit | b76949b0e4820d4136ad86cdf342964fc879ab60 (patch) | |
| tree | 9dc6ed4923d137f1b0acc54341119e5e9f9fe9fb /infra | |
| parent | c2e9275a9e56f7d0567fc2512d5cab67932d39da (diff) | |
export symbol session_manager_lookup_session_by_packet/id()
Diffstat (limited to 'infra')
| -rw-r--r-- | infra/session_manager/session_manager.c | 30 | ||||
| -rw-r--r-- | infra/version.map | 2 |
2 files changed, 30 insertions, 2 deletions
diff --git a/infra/session_manager/session_manager.c b/infra/session_manager/session_manager.c index 96d421c..da6935b 100644 --- a/infra/session_manager/session_manager.c +++ b/infra/session_manager/session_manager.c @@ -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); } +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) { 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) { assert(sess_mgr); - assert(thread_id < sess_mgr->cfg->thread_num); - return sess_mgr->rte[thread_id]; + if (thread_id < sess_mgr->cfg->thread_num) + { + return sess_mgr->rte[thread_id]; + } + else + { + return NULL; + } } struct session_manager_cfg *session_manager_get_cfg(struct session_manager *sess_mgr) diff --git a/infra/version.map b/infra/version.map index 47a20b9..85ec0ed 100644 --- a/infra/version.map +++ b/infra/version.map @@ -48,6 +48,8 @@ global: session_manager_on_thread_init; session_manager_on_thread_exit; session_manager_new_session_exdata_index; + session_manager_lookup_session_by_packet; + session_manager_lookup_session_by_id; packet_exdata_to_session; session_monitor_on_init; |
