diff --git a/src/entry/Maat_command.cpp b/src/entry/Maat_command.cpp index 8ebeee3..7e869da 100644 --- a/src/entry/Maat_command.cpp +++ b/src/entry/Maat_command.cpp @@ -838,7 +838,7 @@ void check_maat_expiration(redisContext *ctx, void *logger) } void redis_monitor_traverse(unsigned int version,redisContext *c, void (*start)(unsigned int ,int ,void*),//vesion,CM_UPDATE_TYPE_*,u_para - void (*update)(const char* ,const char*,void* ),//table name ,line ,u_para + int (*update)(const char* ,const char*,void* ),//table name ,line ,u_para void (*finish)(void*),//u_para void* u_para, const unsigned char* dec_key, diff --git a/src/entry/Maat_rule.cpp b/src/entry/Maat_rule.cpp index f687ad7..af2e317 100644 --- a/src/entry/Maat_rule.cpp +++ b/src/entry/Maat_rule.cpp @@ -28,7 +28,7 @@ #include "stream_fuzzy_hash.h" #include "gram_index_engine.h" -int MAAT_FRAME_VERSION_2_0_20170807=1; +int MAAT_FRAME_VERSION_2_0_20170809=1; const char *maat_module="MAAT Frame"; const char* CHARSET_STRING[]={"NONE","gbk","big5","unicode","utf8","bin", @@ -3077,7 +3077,7 @@ void maat_finish_cb(void* u_para) } return; } -void maat_update_cb(const char* table_name,const char* line,void *u_para) +int maat_update_cb(const char* table_name,const char* line,void *u_para) { struct _Maat_feather_t *feather=(struct _Maat_feather_t *)u_para; int ret=-1,i=0; @@ -3096,7 +3096,7 @@ void maat_update_cb(const char* table_name,const char* line,void *u_para) if(ret<0) { MESA_handle_runtime_log(feather->logger,RLOG_LV_INFO,maat_module ,"update warning,unknown table name %s",table_name); - return; + return -1; } p_table=feather->p_table_info[table_id]; for(i=0;iconj_cnt;i++) @@ -3136,7 +3136,7 @@ void maat_update_cb(const char* table_name,const char* line,void *u_para) break; } - return; + return 0; } void *thread_rule_monitor(void *arg) { diff --git a/src/entry/Maat_rule_internal.h b/src/entry/Maat_rule_internal.h index c74dde2..dbd3f4f 100644 --- a/src/entry/Maat_rule_internal.h +++ b/src/entry/Maat_rule_internal.h @@ -431,7 +431,7 @@ void garbage_bury(MESA_lqueue_head garbage_q,void *logger); void make_group_set(const struct _Maat_compile_inner_t* compile_rule,universal_bool_expr_t* a_set); int read_table_info(struct _Maat_table_info_t** p_table_info,int num,const char* table_info_path,int max_thread_num,void* logger); void maat_start_cb(unsigned int new_version,int update_type,void*u_para); -void maat_update_cb(const char* table_name,const char* line,void *u_para); +int maat_update_cb(const char* table_name,const char* line,void *u_para); void maat_finish_cb(void* u_para); void *thread_rule_monitor(void *arg); unsigned int make_sub_type(unsigned short table_id,enum MAAT_CHARSET charset,int do_charset_merge); @@ -454,7 +454,7 @@ char* _maat_strdup(const char* s); char* str_unescape(char* s); void redis_monitor_traverse(unsigned int version,redisContext *c, void (*start)(unsigned int ,int ,void*),//vesion,CM_UPDATE_TYPE_*,u_para - void (*update)(const char* ,const char*,void* ),//table name ,line ,u_para + int (*update)(const char* ,const char*,void* ),//table name ,line ,u_para void (*finish)(void*),//u_para void* u_para, const unsigned char* dec_key, diff --git a/src/entry/config_monitor.cpp b/src/entry/config_monitor.cpp index 87fa793..643e5d9 100644 --- a/src/entry/config_monitor.cpp +++ b/src/entry/config_monitor.cpp @@ -347,12 +347,13 @@ int cm_read_cfg_index_file(const char* path,struct cm_table_info_t* idx,int size } int cm_read_table_file(struct cm_table_info_t* index, - void (*update)(const char*,const char*,void*), + int (*update)(const char*,const char*,void*), void* u_para, const unsigned char* key, void* logger) { int cfg_num=0,i=0; + int ret=0; char line[MAX_CONFIG_LINE]={0},*ret_str=NULL; unsigned char* decrypt_buff=NULL; int decrypt_len=0,do_decrypt=0,decrypt_offset=0; @@ -414,7 +415,11 @@ int cm_read_table_file(struct cm_table_info_t* index, sizeof(line),index->cfg_path,i); continue; } - update(index->table_name,line,u_para); + ret=update(index->table_name,line,u_para); + if(ret<0) + { + break; + } } fclose(fp); if(decrypt_buff!=NULL) @@ -437,7 +442,7 @@ const char* path2filename(const char*path) } void config_monitor_traverse(unsigned int version,const char*idx_dir, void (*start)(unsigned int ,int ,void*), - void (*update)(const char* ,const char*,void* ), + int (*update)(const char* ,const char*,void* ), void (*finish)(void*), void* u_para, const unsigned char* dec_key, diff --git a/src/entry/config_monitor.h b/src/entry/config_monitor.h index 6866ea2..c829970 100644 --- a/src/entry/config_monitor.h +++ b/src/entry/config_monitor.h @@ -6,7 +6,7 @@ void config_monitor_traverse(unsigned int version,const char*idx_dir, void (*start)(unsigned int ,int ,void*),//vesion,CM_UPDATE_TYPE_*,u_para - void (*update)(const char* ,const char*,void* ),//table name ,line ,u_para + int (*update)(const char* ,const char*,void* ),//table name ,line ,u_para void (*finish)(void*),//u_para void* u_para, const unsigned char* dec_key,