summaryrefslogtreecommitdiff
path: root/common/src/tfe_scan.cpp
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2024-01-03 17:26:20 +0800
committerfengweihao <[email protected]>2024-01-03 17:26:20 +0800
commit058a5e6e6674cdc243ca4e32b3d726c9ff5c0266 (patch)
treeb57aa4d82a84ede10636049beb9de700b9658157 /common/src/tfe_scan.cpp
parentcbd98507a21d59ceab7e66cf6dfb3a851571d7aa (diff)
TSG-18177 Proxy删除关于FQDN Category的配置加载和扫描, Proxy适配maat_scan_group函数变更v4.8.57-20230103
Diffstat (limited to 'common/src/tfe_scan.cpp')
-rw-r--r--common/src/tfe_scan.cpp74
1 files changed, 8 insertions, 66 deletions
diff --git a/common/src/tfe_scan.cpp b/common/src/tfe_scan.cpp
index 1948526..02f31a9 100644
--- a/common/src/tfe_scan.cpp
+++ b/common/src/tfe_scan.cpp
@@ -79,67 +79,6 @@ int tfe_scan_subscribe_id(const struct tfe_stream *stream, long long *result, st
return hit_cnt_ip;
}
-int tfe_scan_fqdn_cat(const struct tfe_stream *stream, long long *result, struct maat_state *scan_mid,
- int hit_cnt, void *logger, int table_id)
-{
- int scan_ret = 0;
- unsigned int i = 0;
- uint16_t opt_out_size;
- int hit_cnt_fqdn = 0;
- size_t n_hit_result = 0;
- unsigned int category_id_num = 0;
- unsigned int category_id_val[TFE_SYMBOL_MAX] = {0};
-
- struct tfe_cmsg *cmsg = tfe_stream_get0_cmsg(stream);
- if (cmsg != NULL)
- {
- scan_ret = tfe_cmsg_get_value(cmsg, TFE_CMSG_FQDN_CAT_ID_NUM, (unsigned char *)&category_id_num, sizeof(category_id_num), &opt_out_size);
- if (scan_ret != 0)
- {
- TFE_LOG_ERROR(logger, "fetch fqdn cat id num from cmsg failed, ret: %d addr: %s", scan_ret, stream->str_stream_info);
- }
- scan_ret = tfe_cmsg_get_value(cmsg, TFE_CMSG_FQDN_CAT_ID_VAL, (unsigned char *)category_id_val, sizeof(category_id_val), &opt_out_size);
- if (scan_ret != 0)
- {
- TFE_LOG_ERROR(logger, "fetch fqdn cat id val from cmsg failed, ret: %d addr: %s", scan_ret, stream->str_stream_info);
- }
- }
- TFE_LOG_DEBUG(logger, "fetch fqdn cat id:%d val:%d,%d,%d,%d,%d,%d,%d,%d addr: %s", category_id_num,
- (category_id_num >= 1 ? category_id_val[0] : 0),
- (category_id_num >= 2 ? category_id_val[1] : 0),
- (category_id_num >= 3 ? category_id_val[2] : 0),
- (category_id_num >= 4 ? category_id_val[3] : 0),
- (category_id_num >= 5 ? category_id_val[4] : 0),
- (category_id_num >= 6 ? category_id_val[5] : 0),
- (category_id_num >= 7 ? category_id_val[6] : 0),
- (category_id_num >= 8 ? category_id_val[7] : 0),
- stream->str_stream_info);
-
- for (i = 0; i < category_id_num && i < 8; i++)
- {
- scan_ret = maat_scan_integer((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), table_id, category_id_val[i], result + hit_cnt + hit_cnt_fqdn,
- MAX_SCAN_RESULT - hit_cnt - hit_cnt_fqdn, &n_hit_result, scan_mid);
- if (scan_ret == MAAT_SCAN_HIT)
- {
- TFE_LOG_INFO(logger, "Scan FQDN_CAT, Hit catid: %d scan ret: %d policy_id: %lld addr: %s",
- category_id_val[i], scan_ret, result[hit_cnt + hit_cnt_fqdn], stream->str_stream_info);
- hit_cnt_fqdn += n_hit_result;
- }
- else
- {
- TFE_LOG_INFO(logger, "Scan FQDN_CAT, NO hit catid: %d scan ret: %d addr: %s",
- category_id_val[i], scan_ret, stream->str_stream_info);
- }
- }
- scan_ret = maat_scan_not_logic((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), table_id, result + hit_cnt + hit_cnt_fqdn,
- MAX_SCAN_RESULT - hit_cnt - hit_cnt_fqdn, &n_hit_result, scan_mid);
- if (scan_ret == MAAT_SCAN_HIT)
- {
- hit_cnt_fqdn += n_hit_result;
- }
- return hit_cnt_fqdn;
-}
-
int tfe_scan_ip_location(const struct tfe_stream *stream, long long *result, struct maat_state *scan_mid,
int hit_cnt, void *logger, char **location_server, char **location_client)
{
@@ -320,12 +259,15 @@ int tfe_scan_app_id(long long *result, struct maat_state *scan_mid, int hit_cnt,
int scan_ret = 0;
int hit_app_id = 0;
size_t n_hit_result = 0;
+ struct maat_hit_group hit_group;
struct app_id_dict *app_dict = (struct app_id_dict*)maat_plugin_table_get_ex_data((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), tfe_bussiness_tableid_get(TABLE_OBJ_APP_ID_DICT),
(const char *)&app_id, sizeof(long long));
if(app_dict!=NULL)
{
- scan_ret = maat_scan_group((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), table_id, &app_dict->group_id, 1, result+hit_cnt+hit_app_id,
+ memset(&hit_group, 0, sizeof(hit_group));
+ hit_group.group_id=app_dict->group_id;
+ scan_ret = maat_scan_group((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), table_id, &hit_group, 1, result+hit_cnt+hit_app_id,
MAX_SCAN_RESULT-hit_cnt-hit_app_id, &n_hit_result, scan_mid);
if(scan_ret==MAAT_SCAN_HIT)
{
@@ -365,7 +307,7 @@ int tfe_scan_internal_exteral_addr(const struct tfe_stream *stream, long long *r
int hit_cnt_ip = 0;
size_t array_size=256;
size_t n_hit_result = 0;
- long long group_id_array[256]={0};
+ struct maat_hit_group last_hit_groups[256] = {0};
int dir_is_e2i = get_route_dir(stream);
int scan_internal_table_id=maat_get_table_id((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), "ATTR_INTERNAL_ADDR");
@@ -374,11 +316,11 @@ int tfe_scan_internal_exteral_addr(const struct tfe_stream *stream, long long *r
if(c2s == 1) table_id = (dir_is_e2i == 1) ? scan_internal_table_id : scan_external_table_id;
if(c2s == 0) table_id = (dir_is_e2i == 0) ? scan_internal_table_id : scan_external_table_id;
- size_t n_last_hit_group = maat_state_get_last_hit_group_id_cnt(scan_mid);
+ size_t n_last_hit_group = maat_state_get_last_hit_group_cnt(scan_mid);
if(n_last_hit_group > 0)
{
- maat_state_get_last_hit_group_ids(scan_mid, group_id_array, array_size);
- scan_ret = maat_scan_group((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), table_id, group_id_array, array_size, result+hit_cnt+hit_cnt_ip,
+ maat_state_get_last_hit_groups(scan_mid, last_hit_groups, array_size);
+ scan_ret = maat_scan_group((struct maat *)tfe_bussiness_resouce_get(STATIC_MAAT), table_id, last_hit_groups, array_size, result+hit_cnt+hit_cnt_ip,
MAX_SCAN_RESULT-hit_cnt-hit_cnt_ip, &n_hit_result, scan_mid);
if(scan_ret == MAAT_SCAN_HIT)
{