🦄 refactor(rename plug mgr api): session plug register with hooks
This commit is contained in:
@@ -984,11 +984,11 @@ int plugin_manager_on_polling(struct plugin_manager_schema *plug_mgr)
|
||||
*********************************************/
|
||||
UT_icd registered_session_plugin_schema_icd = {sizeof(struct registered_session_plugin_schema), NULL, NULL, NULL};
|
||||
|
||||
int stellar_session_plugin_register_with_hook(struct stellar *st,
|
||||
int stellar_session_plugin_register_with_hooks(struct stellar *st,
|
||||
session_ctx_new_func session_ctx_new,
|
||||
session_ctx_free_func session_ctx_free,
|
||||
session_on_new_func session_on_new,
|
||||
session_on_free_func session_on_free,
|
||||
on_session_new_func session_on_new,
|
||||
on_session_free_func session_on_free,
|
||||
void *plugin_env)
|
||||
{
|
||||
struct plugin_manager_schema *plug_mgr = stellar_get_plugin_manager(st);
|
||||
@@ -1012,7 +1012,7 @@ int stellar_session_plugin_register(struct stellar *st,
|
||||
session_ctx_free_func session_ctx_free,
|
||||
void *plugin_env)
|
||||
{
|
||||
return stellar_session_plugin_register_with_hook(st, session_ctx_new, session_ctx_free, NULL, NULL, plugin_env);
|
||||
return stellar_session_plugin_register_with_hooks(st, session_ctx_new, session_ctx_free, NULL, NULL, plugin_env);
|
||||
}
|
||||
|
||||
void plugin_manager_on_session_input(struct session *sess, struct packet *pkt)
|
||||
@@ -1117,16 +1117,16 @@ void plugin_manager_on_session_free(struct session *sess)
|
||||
if(plug_mgr_rt->plug_mgr->registered_session_plugin_array==NULL)return;
|
||||
plug_mgr_rt->pub_session_msg_cnt=0;// reset pub_msg_cnt
|
||||
|
||||
struct registered_session_plugin_schema *s = NULL;
|
||||
struct registered_session_plugin_schema *session_plugin_schema = NULL;
|
||||
struct session_plugin_ctx_runtime *plugin_ctx_rt;
|
||||
for(unsigned int i = 0; i < utarray_len(plug_mgr_rt->plug_mgr->registered_session_plugin_array); i++)
|
||||
{
|
||||
s = (struct registered_session_plugin_schema *)utarray_eltptr(plug_mgr_rt->plug_mgr->registered_session_plugin_array, i);
|
||||
if (s->on_session_free)
|
||||
session_plugin_schema = (struct registered_session_plugin_schema *)utarray_eltptr(plug_mgr_rt->plug_mgr->registered_session_plugin_array, i);
|
||||
plugin_ctx_rt = (plug_mgr_rt->plugin_ctx_array + i);
|
||||
if (session_plugin_schema->on_session_free && plugin_ctx_rt->state != EXIT)//dettached session plugin do not call on_session_free
|
||||
{
|
||||
plugin_ctx_rt = (plug_mgr_rt->plugin_ctx_array + i);
|
||||
plugin_manager_runtime_update_plugin_ctx(sess, s, plugin_ctx_rt);
|
||||
s->on_session_free(sess, plugin_ctx_rt->plugin_ctx, s->plugin_env);
|
||||
plugin_manager_runtime_update_plugin_ctx(sess, session_plugin_schema, plugin_ctx_rt);
|
||||
session_plugin_schema->on_session_free(sess, plugin_ctx_rt->plugin_ctx, session_plugin_schema->plugin_env);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user