调整cname的凭借方式,使用JSON实现
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
|
|
||||||
char *g_fw_dns_conffile=(char *)"tsgconf/main.conf";
|
char *g_fw_dns_conffile=(char *)"tsgconf/main.conf";
|
||||||
char FW_DNS_PLUG_VERSION_20191206=0;
|
char FW_DNS_PLUG_VERSION_20191209=0;
|
||||||
struct _fw_dns_plug g_fw_dns_plug_info;
|
struct _fw_dns_plug g_fw_dns_plug_info;
|
||||||
|
|
||||||
enum TSG_ETHOD_TYPE
|
enum TSG_ETHOD_TYPE
|
||||||
@@ -288,10 +288,9 @@ static int fw_dns_send_log(struct streaminfo *a_stream, dns_info_t *dns_info, st
|
|||||||
int i=0;
|
int i=0;
|
||||||
dns_rr_t *rr=NULL;
|
dns_rr_t *rr=NULL;
|
||||||
tsg_log_t log_msg;
|
tsg_log_t log_msg;
|
||||||
int cname_use_len=0,dns_sec=1;
|
int dns_sec=1;
|
||||||
struct TLD_handle_t *handle=NULL;
|
struct TLD_handle_t *handle=NULL;
|
||||||
char cname[4096]={0},*rr_buf=NULL;
|
char *cname=NULL,*rr_buf=NULL;
|
||||||
int cname_size=sizeof(cname);
|
|
||||||
|
|
||||||
handle=TLD_create(thread_seq);
|
handle=TLD_create(thread_seq);
|
||||||
|
|
||||||
@@ -315,21 +314,30 @@ static int fw_dns_send_log(struct streaminfo *a_stream, dns_info_t *dns_info, st
|
|||||||
TLD_append(handle, (char *)"dns_qclass", (void *)(long)dns_info->query_question.qclass, TLD_TYPE_LONG);
|
TLD_append(handle, (char *)"dns_qclass", (void *)(long)dns_info->query_question.qclass, TLD_TYPE_LONG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cJSON *item=NULL;
|
||||||
|
cJSON *cname_array=cJSON_CreateArray();
|
||||||
for(i=0; i<dns_info->rr_count && dns_info->rr != NULL; i++)
|
for(i=0; i<dns_info->rr_count && dns_info->rr != NULL; i++)
|
||||||
{
|
{
|
||||||
rr = &dns_info->rr[i];
|
rr = &dns_info->rr[i];
|
||||||
if(rr!=NULL && rr->type==DNS_TYPE_CNAME)
|
if(rr!=NULL && rr->type==DNS_TYPE_CNAME)
|
||||||
{
|
{
|
||||||
if(rr->rdata.cname != NULL && cname_size-cname_use_len > (int)strlen((const char *)rr->rdata.cname))
|
if(rr->rdata.cname != NULL)
|
||||||
{
|
{
|
||||||
snprintf(cname+cname_use_len, cname_size-cname_use_len, "%s,", rr->rdata.cname);
|
item=cJSON_CreateString((const char *)rr->rdata.cname);
|
||||||
cname_use_len += strlen((const char *)rr->rdata.cname);
|
cJSON_AddItemToArray(cname_array, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TLD_append(handle, (char *)"dns_cname", (void *)cname, TLD_TYPE_STRING);
|
|
||||||
|
|
||||||
|
cname=cJSON_PrintUnformatted(cname_array);
|
||||||
|
if(strlen(cname)>0)
|
||||||
|
{
|
||||||
|
TLD_append(handle, (char *)"dns_cname", (void *)cname, TLD_TYPE_STRING);
|
||||||
|
free(cname);
|
||||||
|
}
|
||||||
|
cJSON_Delete(cname_array);
|
||||||
|
cname_array=NULL;
|
||||||
|
|
||||||
cJSON * object=cJSON_CreateObject();
|
cJSON * object=cJSON_CreateObject();
|
||||||
get_rr_str2json(object, dns_info, &dns_sec);
|
get_rr_str2json(object, dns_info, &dns_sec);
|
||||||
rr_buf=cJSON_PrintUnformatted(object);
|
rr_buf=cJSON_PrintUnformatted(object);
|
||||||
|
|||||||
Reference in New Issue
Block a user