summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2024-08-08 15:35:29 +0800
committerluwenpeng <[email protected]>2024-08-12 15:48:37 +0800
commitf89fc8fc695dbb8e1f66067d504c6ef66c069560 (patch)
tree07033937571836d3961febe30af33f6792832ecd
parent2d408b3503750ef16a202c7ba7f1e84e40723027 (diff)
🐞 fix(plugin manager api): enhanced parameter check
-rw-r--r--src/plugin/plugin_manager.cpp9
1 files changed, 6 insertions, 3 deletions
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