From 593bcfb907bde6bae272e5dde7f13f01daf34836 Mon Sep 17 00:00:00 2001 From: zhengchao Date: Mon, 11 Oct 2021 12:00:26 +0300 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20TSG-7994=20=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=A4=84=E7=90=86=E6=9C=AA=E7=9F=A5district?= =?UTF-8?q?=E6=97=B6=E5=87=BA=E7=8E=B0=E8=AF=AF=E5=91=BD=E4=B8=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entry/Maat_api.cpp | 6 +++--- src/entry/Maat_rule.cpp | 12 ++++++------ src/inc_internal/Maat_rule_internal.h | 7 ++++--- test/maat_json.json | 10 +++++----- test/test_maatframe.cpp | 8 ++++---- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/entry/Maat_api.cpp b/src/entry/Maat_api.cpp index 142e059..c5f05c2 100644 --- a/src/entry/Maat_api.cpp +++ b/src/entry/Maat_api.cpp @@ -200,7 +200,7 @@ void scan_region_hit_wraper_build_with_rulescan(struct scan_region_hit_wraper* w for(i=0; i< n_rslt; i++) { region=(struct Maat_region_inner*)(rulescan_rslt[i].tag); - if(region->district_id==district_id||district_id==-1) + if(region->district_id==district_id||district_id==DISTRICT_ANY) { wraper->hit_regions[wraper->n_hit_region]=region; wraper->n_hit_region++; @@ -422,7 +422,7 @@ struct _OUTER_scan_status_t* _make_outer_status(_Maat_feather_t *feather, int th struct _OUTER_scan_status_t* outer_mid=NULL; outer_mid=(struct _OUTER_scan_status_t*)calloc(sizeof(struct _OUTER_scan_status_t),1); outer_mid->feather=feather; - outer_mid->district_id=-1; + outer_mid->district_id=DISTRICT_ANY; outer_mid->thread_num=(unsigned short)thread_num; alignment_int64_array_add(feather->outer_mid_cnt, thread_num,1); return outer_mid; @@ -2481,7 +2481,7 @@ int Maat_set_scan_status(Maat_feather_t feather,scan_status_t* mid,enum MAAT_SCA if(map_ret<0) { //May be the district is not effected yet. - _mid->district_id=-1; + _mid->district_id=DISTRICT_UNKNOWN; } _mid->is_set_district=1; break; diff --git a/src/entry/Maat_rule.cpp b/src/entry/Maat_rule.cpp index 375c365..629d22c 100644 --- a/src/entry/Maat_rule.cpp +++ b/src/entry/Maat_rule.cpp @@ -57,7 +57,7 @@ extern "C" } #endif -int MAAT_FRAME_VERSION_3_4_8_20210819=1; +int MAAT_FRAME_VERSION_3_4_9_20211011=1; int is_valid_table_name(const char* str) { @@ -671,7 +671,7 @@ void destroy_rs_ip_rule(scan_rule_t* p) { free(p); } -scan_rule_t* create_rs_intval_rule(unsigned int sub_type,struct db_intval_rule *intval_rule) +scan_rule_t* create_rs_intval_rule(unsigned int sub_type,struct db_interval_rule *intval_rule) { scan_rule_t *p_rule=(scan_rule_t*)calloc(sizeof(scan_rule_t),1); p_rule->rule_type=RULETYPE_INT; @@ -1358,14 +1358,14 @@ int add_ip_rule(struct Maat_table_schema* table, struct db_ip_rule_t* db_ip_rule MESA_lqueue_join_tail(scanner->region_update_q, &op_expr, sizeof(void*)); return 0; } -int add_intval_rule(struct Maat_table_schema* table,struct db_intval_rule* intval_rule,struct Maat_scanner *scanner,void* logger) +int add_interval_rule(struct Maat_table_schema* table,struct db_interval_rule* intval_rule,struct Maat_scanner *scanner,void* logger) { scan_rule_t* p_rule=NULL; struct op_expr_t* op_expr=NULL; struct Maat_region_inner* u_para=NULL; int expr_id=0, ret=0,district_id=-1; - if(table->table_type==TABLE_TYPE_EXPR_PLUS) + if(table->table_type==TABLE_TYPE_INTERVAL_PLUS) { assert(strlen(intval_rule->district)>0); str_unescape(intval_rule->district); @@ -1945,7 +1945,7 @@ error_out: void update_intval_rule(struct Maat_table_schema* table, const char* table_line, struct Maat_scanner *scanner, void* logger) { - struct db_intval_rule* intval_rule=ALLOC(struct db_intval_rule, 1); + struct db_interval_rule* intval_rule=ALLOC(struct db_interval_rule, 1); struct Maat_table_runtime* table_rt=Maat_table_runtime_get(scanner->table_rt_mgr, table->table_id); int ret=0; switch(table->table_type) @@ -2006,7 +2006,7 @@ void update_intval_rule(struct Maat_table_schema* table, const char* table_line, } else { - ret=add_intval_rule(table, intval_rule,scanner,logger); + ret=add_interval_rule(table, intval_rule,scanner,logger); if(ret<0) { MESA_handle_runtime_log(logger,RLOG_LV_INFO,maat_module , diff --git a/src/inc_internal/Maat_rule_internal.h b/src/inc_internal/Maat_rule_internal.h index b4c6528..ff6b521 100644 --- a/src/inc_internal/Maat_rule_internal.h +++ b/src/inc_internal/Maat_rule_internal.h @@ -62,7 +62,7 @@ struct db_ip_rule_t }; int is_valid; }; -struct db_intval_rule +struct db_interval_rule { int region_id; int group_id; @@ -162,14 +162,15 @@ struct Maat_region_inner int expr_id_ub; //up boundary }; - +#define DISTRICT_ANY -1 +#define DISTRICT_UNKNOWN -2 struct _OUTER_scan_status_t { struct _Maat_feather_t* feather; unsigned short thread_num; unsigned char is_set_district; unsigned char is_last_region; - int district_id; + int district_id; //-1: Any District; -2: Unkonwn District; int scan_cnt; struct Maat_hierarchy_compile_mid* compile_mid; }; diff --git a/test/maat_json.json b/test/maat_json.json index 7b61372..bd8fc70 100644 --- a/test/maat_json.json +++ b/test/maat_json.json @@ -116,7 +116,7 @@ "regions": [ { "table_name": "INTERGER_PLUS", - "table_type": "intval_plus", + "table_type": "interval_plus", "table_content": { "district": "fqdn_cat_id", "low_boundary": 1724, @@ -261,7 +261,7 @@ "regions": [ { "table_name": "CONTENT_SIZE", - "table_type": "intval", + "table_type": "interval", "table_content": { "low_boundary": 100, "up_boundary": 500 @@ -325,7 +325,7 @@ "regions": [ { "table_name": "CONTENT_SIZE", - "table_type": "intval", + "table_type": "interval", "table_content": { "low_boundary": 2014, "up_boundary": 2016 @@ -1947,9 +1947,9 @@ "regions": [ { "table_name": "INTERGER_PLUS", - "table_type": "intval_plus", + "table_type": "interval_plus", "table_content": { - "district": "intval.plus", + "district": "interval.plus", "low_boundary": 2020, "up_boundary": 2020 } diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp index 9147c2f..ee5f70a 100644 --- a/test/test_maatframe.cpp +++ b/test/test_maatframe.cpp @@ -540,8 +540,8 @@ TEST(StringScan, PrefixAndSuffix) } -#define IntvalPlusTest 1 -TEST(IntvalScan, IntvalPlusPlus) +#define IntervalPlusTest 1 +TEST(IntervalScan, IntervalPlus) { int table_id=0,ret=0; int scan_val=2020; @@ -551,7 +551,7 @@ TEST(IntvalScan, IntvalPlusPlus) table_id=Maat_table_register(g_feather, "INTERGER_PLUS"); ASSERT_GT(table_id, 0); - ret=Maat_set_scan_status(g_feather, &mid, MAAT_SET_SCAN_DISTRICT, "intval.plus", strlen("intval.plus")); + ret=Maat_set_scan_status(g_feather, &mid, MAAT_SET_SCAN_DISTRICT, "interval.plus", strlen("interval.plus")); ASSERT_EQ(ret, 0); ret=Maat_scan_intval(g_feather, table_id, scan_val, result,4, &mid, 0); @@ -675,7 +675,7 @@ TEST(StringScan, ShouldNotHitExprPlus) ret=Maat_full_scan_string(g_feather, table_id,CHARSET_GBK, (char*)udp_payload_not_hit, sizeof(udp_payload_not_hit), result, NULL, 4, &mid, 0); - EXPECT_EQ(ret, 0); + EXPECT_EQ(ret, -2); Maat_clean_status(&mid); return;