From 7ce1b2976d6ca6140ef125087edf7ead53602998 Mon Sep 17 00:00:00 2001 From: liuxueli Date: Mon, 12 Dec 2022 15:41:29 +0800 Subject: [PATCH] =?UTF-8?q?TSG-12986:=20=E5=BD=93cname=E6=88=96=E8=80=85?= =?UTF-8?q?=E5=BA=94=E7=AD=94=E8=AE=B0=E5=BD=95=E4=B8=BA=E7=A9=BA=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=8F=91=E9=80=81=E7=9B=B8=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fw_dns_plug.cpp | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/fw_dns_plug.cpp b/src/fw_dns_plug.cpp index f3a2f23..a87d68c 100644 --- a/src/fw_dns_plug.cpp +++ b/src/fw_dns_plug.cpp @@ -50,7 +50,7 @@ char *g_fw_dns_conffile=(char *)"tsgconf/main.conf"; static int fw_dns_send_log(struct streaminfo *a_stream, dns_info_t *dns_info, struct Maat_rule_t *result, int result_num, int thread_seq) { - int i=0; + int i=0,cname_flag=0; dns_rr_t *rr=NULL; tsg_log_t log_msg; int dns_sec=1; @@ -90,33 +90,41 @@ static int fw_dns_send_log(struct streaminfo *a_stream, dns_info_t *dns_info, st { item=cJSON_CreateString((const char *)rr->rdata.cname); cJSON_AddItemToArray(cname_array, item); + cname_flag=1; } } } - cname=cJSON_PrintUnformatted(cname_array); - if(cname!=NULL && strlen(cname)>0) + if(cname_flag==1) { - TLD_append(handle, (char *)"dns_cname", (void *)cname, TLD_TYPE_STRING); - cJSON_free(cname); - cname=NULL; + cname=cJSON_PrintUnformatted(cname_array); + if(cname!=NULL) + { + TLD_append(handle, (char *)"dns_cname", (void *)cname, TLD_TYPE_STRING); + cJSON_free(cname); + cname=NULL; + } } + cJSON_Delete(cname_array); cname_array=NULL; - - cJSON * object=cJSON_CreateObject(); - get_rr_str2json(object, dns_info, &dns_sec); - rr_buf=cJSON_PrintUnformatted(object); - TLD_append(handle, (char *)"dns_rr", (void *)rr_buf, TLD_TYPE_STRING); - - cJSON_Delete(object); - object=NULL; - cJSON_free(rr_buf); - rr_buf=NULL; + if(dns_info->rr_count>0) + { + cJSON * object=cJSON_CreateObject(); + get_rr_str2json(object, dns_info, &dns_sec); + rr_buf=cJSON_PrintUnformatted(object); + if(rr_buf!=NULL) + { + TLD_append(handle, (char *)"dns_rr", (void *)rr_buf, TLD_TYPE_STRING); + cJSON_free(rr_buf); + rr_buf=NULL; + } + cJSON_Delete(object); + object=NULL; + } TLD_append(handle, (char *)"dns_sub", (void *)(long)dns_sec, TLD_TYPE_LONG); - TLD_append(handle, (char *)"common_schema_type", (void *)"DNS", TLD_TYPE_STRING); log_msg.a_stream=a_stream;