diff --git a/src/plugin/plugin_manager.cpp b/src/plugin/plugin_manager.cpp index 5cf0797..49562b6 100644 --- a/src/plugin/plugin_manager.cpp +++ b/src/plugin/plugin_manager.cpp @@ -895,7 +895,7 @@ int stellar_packet_plugin_register(struct stellar *st, unsigned char ip_proto, p void plugin_manager_on_packet_ingress(struct plugin_manager_schema *plug_mgr, struct packet *pkt) { - if(plug_mgr->registered_packet_plugin_array == NULL || pkt == NULL)return; + if(plug_mgr==NULL || plug_mgr->registered_packet_plugin_array == NULL || pkt == NULL)return; struct registered_packet_plugin_schema *p=NULL; //TODO: get innermost layer ip protocol by packet api @@ -919,7 +919,7 @@ void plugin_manager_on_packet_ingress(struct plugin_manager_schema *plug_mgr, st void plugin_manager_on_packet_egress(struct plugin_manager_schema *plug_mgr, struct packet *pkt) { - if(plug_mgr->registered_packet_plugin_array == NULL || pkt == NULL)return; + if(plug_mgr == NULL || plug_mgr->registered_packet_plugin_array == NULL || pkt == NULL)return; int tid=stellar_get_current_thread_index(); stellar_mq_dispatch(plug_mgr->per_thread_data[tid].priority_mq, &plug_mgr->per_thread_data[tid].dealth_letter_queue, NULL, pkt); plug_mgr->per_thread_data[tid].pub_packet_msg_cnt=-1;//disable packet message publish @@ -950,7 +950,7 @@ int stellar_polling_plugin_register(struct stellar *st, plugin_on_polling_func o int plugin_manager_on_polling(struct plugin_manager_schema *plug_mgr) { - if(plug_mgr->registered_polling_plugin_array == NULL)return 0; + if(plug_mgr==NULL || plug_mgr->registered_polling_plugin_array == NULL)return 0; struct registered_polling_plugin_schema *p=NULL; int polling_state=0; while ((p = (struct registered_polling_plugin_schema *)utarray_next(plug_mgr->registered_polling_plugin_array, p))) @@ -992,6 +992,7 @@ int stellar_session_plugin_register(struct stellar *st, void plugin_manager_on_session_ingress(struct session *sess, struct packet *pkt) { + if(sess==NULL)return; struct plugin_manager_runtime *plug_mgr_rt = (struct plugin_manager_runtime *)session_get_user_data(sess); if(plug_mgr_rt==NULL)return; #if 0 @@ -1062,6 +1063,7 @@ void plugin_manager_on_session_ingress(struct session *sess, struct packet *pkt) void plugin_manager_on_session_egress(struct session *sess, struct packet *pkt) { + if(sess==NULL)return; struct plugin_manager_runtime *plug_mgr_rt = (struct plugin_manager_runtime *)session_get_user_data(sess); if(plug_mgr_rt==NULL)return; plugin_manager_scratch_session_set(sess); @@ -1076,6 +1078,7 @@ void plugin_manager_on_session_egress(struct session *sess, struct packet *pkt) void plugin_manager_on_session_closing(struct session *sess) { + if(sess==NULL)return; struct plugin_manager_runtime *plug_mgr_rt = (struct plugin_manager_runtime *)session_get_user_data(sess); if(plug_mgr_rt==NULL)return; plug_mgr_rt->pub_session_msg_cnt=0;// reset pub_msg_cnt