From 263cdc86b5b2f58bd3003f0af3234bc4ea4690a4 Mon Sep 17 00:00:00 2001 From: jixinyi Date: Thu, 17 Jan 2019 17:55:21 +0800 Subject: 适应修改后DNAT_POLICY库表 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/ir_mctrl | Bin 48952 -> 48888 bytes src/ir_mctrl.cpp | 42 ++++++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/bin/ir_mctrl b/bin/ir_mctrl index 39db09f..24c655c 100644 Binary files a/bin/ir_mctrl and b/bin/ir_mctrl differ 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) { -- cgit v1.2.3