summaryrefslogtreecommitdiff
path: root/src/ir_mctrl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir_mctrl.cpp')
-rw-r--r--src/ir_mctrl.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/ir_mctrl.cpp b/src/ir_mctrl.cpp
index 2c1fc96..83f7820 100644
--- a/src/ir_mctrl.cpp
+++ b/src/ir_mctrl.cpp
@@ -217,11 +217,6 @@ long set_update_search_htable_cb(void *data, const uchar *key, uint size, void *
mctrl_info.dst_port,mctrl_info.mask_dst_port,mctrl_info.procotol,mctrl_info.direction,mctrl_info.addr_pool_id,mctrl_info.is_valid,
mctrl_info.action,mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time);
}
- else
- {
- MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"set_update_search_htable_cb","htable info not exist!,add htable data error!!!");
- assert(0);
- }
return mctrl_info.htable_flag;
}
@@ -343,11 +338,11 @@ void nominee_intercept_candidate_maat_update_cb(int table_id,const char* table_l
if(htable_data==NULL)
{
del_ir_redis_info(*(int*)u_para,table_line,rule_id);
- MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_maat_update_cb","htable data not exist,del it!");
+ MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_maat_update_cb","htable data not exist,del it! rule_id is:%d",rule_id);
}
else
{
- MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_maat_update_cb","htable data exist!");
+ MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"nominee_intercept_candidate_maat_update_cb","htable data exist! rule_id is:%d",rule_id);
}
return;
}
@@ -356,7 +351,9 @@ void htable_data_free(void *data)
{
if(data!=NULL)
{
- MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_INFO, (char*)"htable_data_free","htable_data_free!");
+ int rule_id=0;
+ sscanf((char*)data,"%*d\t%d",&rule_id);
+ MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_INFO, (char*)"htable_data_free","rule_id is:%d",rule_id);
free(data);
data=NULL;
}
@@ -451,15 +448,19 @@ void sta_dyn_policy_maat_update_cb(int table_id,const char* table_line,void* u_p
if(mctrl_info.is_valid==1)
{
+
htable_data=(char*)malloc(HTABLE_DATA_LEN);
+ if(htable_data==NULL)
+ {
+ MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_FATAL, (char*)"sta_dyn_policy_maat_update_cb","malloc htable_data error!!");
+ exit(1);
+ }
snprintf(htable_data,HTABLE_DATA_LEN,"%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\t%s",
mctrl_info.htable_flag,mctrl_info.version,mctrl_info.region_id,mctrl_info.group_id,mctrl_info.addr_type,
mctrl_info.src_ip,mctrl_info.mask_src_ip,mctrl_info.src_port,mctrl_info.mask_src_port,mctrl_info.dst_ip,mctrl_info.mask_dst_ip,
mctrl_info.dst_port,mctrl_info.mask_dst_port,mctrl_info.procotol,mctrl_info.direction,mctrl_info.addr_pool_id,mctrl_info.is_valid,
mctrl_info.action,mctrl_info.service,mctrl_info.user_region,mctrl_info.effective_range,mctrl_info.op_time);
-
add_ret=MESA_htable_add(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),htable_data);
-
if(add_ret<0)
{
MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_update_cb","add htable error:%d",add_ret);
@@ -468,12 +469,13 @@ void sta_dyn_policy_maat_update_cb(int table_id,const char* table_line,void* u_p
{
MESA_handle_runtime_log(mctrl_g.logger_handle, RLOG_LV_DEBUG, (char*)"sta_dyn_policy_maat_update_cb","add htable succeed:%d",add_ret);
}
-
+
MESA_htable_search_cb(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),set_update_search_htable_cb,NULL,&cb_ret);
-
- set_ir_redis_info(cb_ret,htable_data,rule_id);
+ set_ir_redis_info(cb_ret,htable_data,rule_id);
+
}
+
else if(mctrl_info.is_valid==0)
{
search_result=MESA_htable_search_cb(mctrl_g.mctrl_htable_handle,key_id,sizeof(rule_id),del_update_search_htable_cb,NULL,&cb_ret);
@@ -579,7 +581,7 @@ void nominee_intercept_candidate_maat_finish_cb(void* u_para)
int register_plugin_table(Maat_feather_t feather,const char* table_name,
Maat_start_callback_t *start,Maat_update_callback_t *update,Maat_finish_callback_t *finish,
- void *u_para,void* logger,int table_id)
+ void *u_para,int table_id)
{
int ret=0;
@@ -767,11 +769,11 @@ int main(int argc, char * argv [ ])
}
register_plugin_table(mctrl_g.s_feather,STATIC_NOMINEE_TABLE_NAME,sta_dyn_policy_maat_start_cb,sta_dyn_policy_maat_update_cb,sta_dyn_policy_maat_finish_cb,
- &static_flag,mctrl_g.logger_handle,static_id);
+ &static_flag,static_id);
register_plugin_table(mctrl_g.d_feather,DYNAMIC_NOMINEE_TABLE_NAME,sta_dyn_policy_maat_start_cb,sta_dyn_policy_maat_update_cb,sta_dyn_policy_maat_finish_cb,
- &dynamic_flag,mctrl_g.logger_handle,dynamic_id);
+ &dynamic_flag,dynamic_id);
register_plugin_table(mctrl_g.s_feather,DNAT_POLICY_TABLE_NAME,sta_dyn_policy_maat_start_cb,sta_dyn_policy_maat_update_cb,sta_dyn_policy_maat_finish_cb,
- &dnat_policy_flag,mctrl_g.logger_handle,dnat_policy_id);
+ &dnat_policy_flag,dnat_policy_id);
nominee_id=Maat_table_register(mctrl_g.n_feather,NOMINEE_TABLE_NAME);
candidate_id=Maat_table_register(mctrl_g.n_feather,CANDIDATE_TABLE_NAME);
@@ -787,11 +789,11 @@ int main(int argc, char * argv [ ])
}
register_plugin_table(mctrl_g.i_feather,INTERCEPT_TABLE_NAME,nominee_intercept_candidate_maat_start_cb,nominee_intercept_candidate_maat_update_cb,nominee_intercept_candidate_maat_finish_cb,
- &intercept_flag,mctrl_g.logger_handle,intercept_id);
+ &intercept_flag,intercept_id);
register_plugin_table(mctrl_g.n_feather,NOMINEE_TABLE_NAME,nominee_intercept_candidate_maat_start_cb,nominee_intercept_candidate_maat_update_cb,nominee_intercept_candidate_maat_finish_cb,
- &nominee_flag,mctrl_g.logger_handle,nominee_id);
+ &nominee_flag,nominee_id);
register_plugin_table(mctrl_g.n_feather,CANDIDATE_TABLE_NAME,nominee_intercept_candidate_maat_start_cb,nominee_intercept_candidate_maat_update_cb,nominee_intercept_candidate_maat_finish_cb,
- &candidate_flag,mctrl_g.logger_handle,candidate_id);
+ &candidate_flag,candidate_id);
while(1)
{