去除重复的categoryID
This commit is contained in:
@@ -95,6 +95,14 @@ static int get_fqdn_len(char *domain)
|
|||||||
return fqdn_len;
|
return fqdn_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sort_category_id(const void * a, const void * b)
|
||||||
|
{
|
||||||
|
struct _fqdn_category_t *x = (struct _fqdn_category_t *) a;
|
||||||
|
struct _fqdn_category_t *y = (struct _fqdn_category_t *) b;
|
||||||
|
|
||||||
|
return (int)(x->category_id - y->category_id);
|
||||||
|
}
|
||||||
|
|
||||||
static int get_data_center(char *accept_tag, char *effective_tag_key, char *data_center, int data_center_len)
|
static int get_data_center(char *accept_tag, char *effective_tag_key, char *data_center, int data_center_len)
|
||||||
{
|
{
|
||||||
int i=0,len;
|
int i=0,len;
|
||||||
@@ -624,6 +632,40 @@ void security_compile_free(int idx, const struct Maat_rule_t* rule, const char*
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int get_fqdn_category_id(Maat_feather_t maat_feather, int table_id, char *fqdn, unsigned int *category_id, int category_id_num, void *logger, int thread_seq)
|
||||||
|
{
|
||||||
|
int i=0,j=0,ret=0;
|
||||||
|
struct _fqdn_category_t *ex_data_array[8]={0};
|
||||||
|
|
||||||
|
ret=Maat_fqdn_plugin_get_EX_data(maat_feather, table_id, fqdn, (MAAT_PLUGIN_EX_DATA *)ex_data_array, 8);
|
||||||
|
if(ret>0)
|
||||||
|
{
|
||||||
|
qsort(ex_data_array, ret, sizeof(struct _fqdn_category_t *), sort_category_id);
|
||||||
|
|
||||||
|
for(i=0; i<ret; i++)
|
||||||
|
{
|
||||||
|
if(j==0)
|
||||||
|
{
|
||||||
|
category_id[j++]=ex_data_array[i]->category_id;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(j<category_id_num && ex_data_array[i]->category_id!=category_id[j-1])
|
||||||
|
{
|
||||||
|
category_id[j++]=ex_data_array[i]->category_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fqdn_cat_free_data(table_id, (MAAT_PLUGIN_EX_DATA *)&(ex_data_array[i]), 0, logger);
|
||||||
|
}
|
||||||
|
|
||||||
|
return j;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static Maat_feather_t init_maat_feather(const char* conffile, char* instance_name, char *module, void *logger)
|
static Maat_feather_t init_maat_feather(const char* conffile, char* instance_name, char *module, void *logger)
|
||||||
{
|
{
|
||||||
unsigned short redis_port = 0;
|
unsigned short redis_port = 0;
|
||||||
@@ -1410,41 +1452,20 @@ int tsg_get_method_id(char *method)
|
|||||||
|
|
||||||
int tsg_get_fqdn_category_id(Maat_feather_t maat_feather, char *fqdn, unsigned int *category_id, int category_id_num, void *logger, int thread_seq)
|
int tsg_get_fqdn_category_id(Maat_feather_t maat_feather, char *fqdn, unsigned int *category_id, int category_id_num, void *logger, int thread_seq)
|
||||||
{
|
{
|
||||||
int i=0,ret=0;
|
int ret=0;
|
||||||
struct _fqdn_category_t *ex_data_array[8]={0};
|
|
||||||
|
|
||||||
if(category_id!=NULL && category_id_num>0)
|
if(category_id!=NULL && category_id_num>0)
|
||||||
{
|
{
|
||||||
ret=Maat_fqdn_plugin_get_EX_data(maat_feather, g_tsg_para.table_id[TABLE_FQDN_CAT_USER_DEFINED], fqdn, (MAAT_PLUGIN_EX_DATA *)ex_data_array, 8);
|
ret=get_fqdn_category_id(maat_feather, g_tsg_para.table_id[TABLE_FQDN_CAT_USER_DEFINED], fqdn, category_id, category_id_num, logger, thread_seq);
|
||||||
if(ret>0)
|
if(ret>0)
|
||||||
{
|
{
|
||||||
for(i=0; i<ret; i++)
|
return ret;
|
||||||
{
|
|
||||||
if(i<category_id_num)
|
|
||||||
{
|
|
||||||
category_id[i]=ex_data_array[i]->category_id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fqdn_cat_free_data(g_tsg_para.table_id[TABLE_FQDN_CAT_USER_DEFINED], (MAAT_PLUGIN_EX_DATA *)&(ex_data_array[i]), 0, logger);
|
ret=get_fqdn_category_id(maat_feather, g_tsg_para.table_id[TABLE_FQDN_CAT_BUILT_IN], fqdn, category_id, category_id_num, logger, thread_seq);
|
||||||
}
|
|
||||||
|
|
||||||
return i<category_id_num ? i : category_id_num;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret=Maat_fqdn_plugin_get_EX_data(maat_feather, g_tsg_para.table_id[TABLE_FQDN_CAT_BUILT_IN], fqdn, (MAAT_PLUGIN_EX_DATA *)ex_data_array, 8);
|
|
||||||
if(ret>0)
|
if(ret>0)
|
||||||
{
|
{
|
||||||
for(i=0; i<ret && i<category_id_num; i++)
|
return ret;
|
||||||
{
|
|
||||||
if(i<category_id_num)
|
|
||||||
{
|
|
||||||
category_id[i]=ex_data_array[i]->category_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
fqdn_cat_free_data(g_tsg_para.table_id[TABLE_FQDN_CAT_BUILT_IN], (MAAT_PLUGIN_EX_DATA *)&(ex_data_array[i]), 0, logger);
|
|
||||||
}
|
|
||||||
|
|
||||||
return i<category_id_num ? i : category_id_num;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ struct tsg_log_instance_t
|
|||||||
char tcp_label[MAX_STRING_LEN];
|
char tcp_label[MAX_STRING_LEN];
|
||||||
char udp_label[MAX_STRING_LEN];
|
char udp_label[MAX_STRING_LEN];
|
||||||
char common_field_file[MAX_STRING_LEN*4];
|
char common_field_file[MAX_STRING_LEN*4];
|
||||||
char broker_list[MAX_STRING_LEN*4];
|
char broker_list[MAX_STRING_LEN*8];
|
||||||
char send_queue_max_msg[MAX_STRING_LEN];
|
char send_queue_max_msg[MAX_STRING_LEN];
|
||||||
char require_ack[MAX_STRING_LEN];
|
char require_ack[MAX_STRING_LEN];
|
||||||
char refresh_interval_ms[MAX_STRING_LEN];
|
char refresh_interval_ms[MAX_STRING_LEN];
|
||||||
|
|||||||
Reference in New Issue
Block a user