diff options
| -rw-r--r-- | include/stellar/session_manager.h | 2 | ||||
| -rw-r--r-- | infra/session_manager/session_manager.c | 23 |
2 files changed, 22 insertions, 3 deletions
diff --git a/include/stellar/session_manager.h b/include/stellar/session_manager.h index 81fc316..749ccbb 100644 --- a/include/stellar/session_manager.h +++ b/include/stellar/session_manager.h @@ -12,7 +12,7 @@ extern "C" struct session_manager; -int session_manager_new_packet_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); typedef void on_session_callback(struct session *sess, struct packet *pkt, void *args); typedef void on_tcp_stream_callback(struct session *sess, const char *tcp_payload, uint32_t tcp_payload_len, void *args); diff --git a/infra/session_manager/session_manager.c b/infra/session_manager/session_manager.c index a9b5c38..735bc4f 100644 --- a/infra/session_manager/session_manager.c +++ b/infra/session_manager/session_manager.c @@ -307,6 +307,10 @@ void session_manager_free(struct session_manager *sess_mgr) struct session_manager *session_manager_new(struct packet_manager *pkt_mgr, struct mq_schema *mq_schema, const char *toml_file) { + assert(pkt_mgr); + assert(mq_schema); + assert(toml_file); + uint16_t thread_num; uint64_t instance_id; uint64_t now_ms = clock_get_real_time_ms(); @@ -360,29 +364,42 @@ error_out: return NULL; } -int session_manager_new_packet_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) { + assert(sess_mgr); + assert(name); + return exdata_schema_new_index(sess_mgr->schema->exdata, name, func, arg); } int session_manager_subscribe_tcp(struct session_manager *sess_mgr, on_session_callback *cb, void *args) { + assert(sess_mgr); + assert(cb); + return mq_schema_subscribe(sess_mgr->schema->mq, sess_mgr->schema->topic_id_tcp, (on_msg_cb_func *)(void *)cb, args); } int session_manager_subscribe_udp(struct session_manager *sess_mgr, on_session_callback *cb, void *args) { + assert(sess_mgr); + assert(cb); + return mq_schema_subscribe(sess_mgr->schema->mq, sess_mgr->schema->topic_id_udp, (on_msg_cb_func *)(void *)cb, args); } int session_manager_subscribe_control_packet(struct session_manager *sess_mgr, on_session_callback *cb, void *args) { + assert(sess_mgr); + assert(cb); + return mq_schema_subscribe(sess_mgr->schema->mq, sess_mgr->schema->topic_id_ctrl_pkt, (on_msg_cb_func *)(void *)cb, args); } int session_manager_subscribe_tcp_stream(struct session_manager *sess_mgr, on_tcp_stream_callback *cb, void *args) { assert(sess_mgr); + assert(cb); return mq_schema_subscribe(sess_mgr->schema->mq, sess_mgr->schema->topic_id_tcp_stream, (on_msg_cb_func *)(void *)cb, args); } @@ -393,6 +410,8 @@ int session_manager_subscribe_tcp_stream(struct session_manager *sess_mgr, on_tc struct stellar_module *session_manager_module_on_init(struct stellar_module_manager *mod_mgr) { + assert(mod_mgr); + struct stellar_module *pkt_mgr_mod = stellar_module_manager_get_module(mod_mgr, "packet_manager_module"); struct packet_manager *pkt_mgr = stellar_module_get_ctx(pkt_mgr_mod); struct mq_schema *mq_schema = stellar_module_manager_get_mq_schema(mod_mgr); @@ -404,7 +423,7 @@ struct stellar_module *session_manager_module_on_init(struct stellar_module_mana return NULL; } - struct stellar_module *sess_mgr_mod = stellar_module_new("session_manager_module", sess_mgr); + struct stellar_module *sess_mgr_mod = stellar_module_new("session_manager_module", NULL); if (sess_mgr_mod == NULL) { SESSION_MANAGER_LOG_ERROR("failed to create session_manager_module"); |
