Feature: performance test case
This commit is contained in:
@@ -11,10 +11,6 @@ extern "C"
|
|||||||
|
|
||||||
#define DNS_MESSAGE_TOPIC "TOPIC_DNS_MESSAGE"
|
#define DNS_MESSAGE_TOPIC "TOPIC_DNS_MESSAGE"
|
||||||
|
|
||||||
struct dns_message;
|
|
||||||
struct dns_query_question;
|
|
||||||
struct dns_resource_record;
|
|
||||||
|
|
||||||
/*.
|
/*.
|
||||||
First call DNS_MESSAGE_TRANSACTION_BEGIN to create the transaction,
|
First call DNS_MESSAGE_TRANSACTION_BEGIN to create the transaction,
|
||||||
then publish the transaction's DNS_MESSAGE_QUERY/DNS_MESSAGE_RESPONSE,
|
then publish the transaction's DNS_MESSAGE_QUERY/DNS_MESSAGE_RESPONSE,
|
||||||
@@ -29,8 +25,6 @@ enum dns_message_type
|
|||||||
DNS_MESSAGE_MAX
|
DNS_MESSAGE_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
enum dns_message_type dns_message_type_get(struct dns_message *msg);
|
|
||||||
|
|
||||||
struct dns_flag
|
struct dns_flag
|
||||||
{
|
{
|
||||||
uint8_t qr:1;
|
uint8_t qr:1;
|
||||||
@@ -43,6 +37,12 @@ struct dns_flag
|
|||||||
uint8_t rcode:4;
|
uint8_t rcode:4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct dns_message;
|
||||||
|
struct dns_query_question;
|
||||||
|
struct dns_resource_record;
|
||||||
|
|
||||||
|
enum dns_message_type dns_message_type_get(struct dns_message *msg);
|
||||||
|
|
||||||
int32_t dns_message_transaction_index_get(struct dns_message *msg);
|
int32_t dns_message_transaction_index_get(struct dns_message *msg);
|
||||||
|
|
||||||
int32_t dns_message_header_id_get(struct dns_message *msg);
|
int32_t dns_message_header_id_get(struct dns_message *msg);
|
||||||
@@ -53,11 +53,9 @@ const char *dns_query_question_qname_get0(struct dns_query_question *question);
|
|||||||
int32_t dns_query_question_qtype_get0(struct dns_query_question *question);
|
int32_t dns_query_question_qtype_get0(struct dns_query_question *question);
|
||||||
int32_t dns_query_question_qclass_get0(struct dns_query_question *question);
|
int32_t dns_query_question_qclass_get0(struct dns_query_question *question);
|
||||||
|
|
||||||
void dns_message_answer_resource_record_get0(struct dns_message *msg, struct dns_resource_record **answer_rr, uint16_t *n_answer_rr);
|
int dns_message_resource_record_is_dnssec(struct dns_message *msg);
|
||||||
void dns_message_authority_resource_record_get0(struct dns_message *msg, struct dns_resource_record **authority_rr, uint16_t *n_authority_rr);
|
const char *dns_message_resource_record_json_exporter(struct dns_message *msg);
|
||||||
void dns_message_additional_resource_record_get0(struct dns_message *msg, struct dns_resource_record **additional_rr, uint16_t *n_additional_rr);
|
const char *dns_message_resource_record_cname_json_exporter(struct dns_message *msg);
|
||||||
|
|
||||||
const char *dns_resource_record_json_exporter(struct dns_resource_record *rr_array, uint16_t n_rr);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -217,3 +217,8 @@ struct dns_query_question
|
|||||||
size_t qname_sz;
|
size_t qname_sz;
|
||||||
uint8_t qname[DNS_NAME_MAX];
|
uint8_t qname[DNS_NAME_MAX];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int32_t dns_message_contains_resource_record(struct dns_message *msg);
|
||||||
|
void dns_message_answer_resource_record_get0(struct dns_message *msg, struct dns_resource_record **answer_rr, uint16_t *n_answer_rr);
|
||||||
|
void dns_message_authority_resource_record_get0(struct dns_message *msg, struct dns_resource_record **authority_rr, uint16_t *n_authority_rr);
|
||||||
|
void dns_message_additional_resource_record_get0(struct dns_message *msg, struct dns_resource_record **additional_rr, uint16_t *n_additional_rr);
|
||||||
@@ -41,7 +41,7 @@ void dns_resource_record_dstring_append(cJSON *one_rr_object, struct dstring *ds
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *dns_resource_record_json_exporter(struct dns_resource_record *rr_array, uint16_t n_rr)
|
cJSON *dns_resource_record_json_create(struct dns_resource_record *rr_array, uint16_t n_rr)
|
||||||
{
|
{
|
||||||
if(rr_array==NULL || n_rr==0)
|
if(rr_array==NULL || n_rr==0)
|
||||||
{
|
{
|
||||||
@@ -222,9 +222,149 @@ const char *dns_resource_record_json_exporter(struct dns_resource_record *rr_arr
|
|||||||
|
|
||||||
cJSON_AddItemToArray(dns_rr_array, one_rr_object);
|
cJSON_AddItemToArray(dns_rr_array, one_rr_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return dns_rr_array;
|
||||||
|
}
|
||||||
|
|
||||||
char *json_str=cJSON_PrintUnformatted(dns_rr_array);
|
const char *dns_message_resource_record_json_exporter(struct dns_message *msg)
|
||||||
cJSON_Delete(dns_rr_array);
|
{
|
||||||
|
uint16_t n_answer_rr=0;
|
||||||
|
struct dns_resource_record *answer_rr=NULL;
|
||||||
|
dns_message_answer_resource_record_get0(msg, &answer_rr, &n_answer_rr);
|
||||||
|
|
||||||
|
uint16_t n_authority_rr=0;
|
||||||
|
struct dns_resource_record *authority_rr=NULL;
|
||||||
|
dns_message_authority_resource_record_get0(msg, &authority_rr, &n_authority_rr);
|
||||||
|
|
||||||
|
uint16_t n_additional_rr=0;
|
||||||
|
struct dns_resource_record *additional_rr=NULL;
|
||||||
|
dns_message_additional_resource_record_get0(msg, &additional_rr, &n_additional_rr);
|
||||||
|
|
||||||
|
if(n_answer_rr==0 && n_authority_rr==0 && n_additional_rr==0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON *answer=dns_resource_record_json_create(answer_rr, n_answer_rr);
|
||||||
|
cJSON *authority=dns_resource_record_json_create(authority_rr, n_authority_rr);
|
||||||
|
cJSON *additional=dns_resource_record_json_create(additional_rr, n_additional_rr);
|
||||||
|
|
||||||
|
cJSON *rr_array=cJSON_CreateObject();
|
||||||
|
if(answer!=NULL)
|
||||||
|
{
|
||||||
|
cJSON_AddItemToObject(rr_array, "answer", answer);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(authority!=NULL)
|
||||||
|
{
|
||||||
|
cJSON_AddItemToObject(rr_array, "authority", authority);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(additional!=NULL)
|
||||||
|
{
|
||||||
|
cJSON_AddItemToObject(rr_array, "additional", additional);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *json_str=cJSON_PrintUnformatted(rr_array);
|
||||||
|
cJSON_Delete(rr_array);
|
||||||
|
|
||||||
return json_str;
|
return json_str;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dns_resource_record_is_dnssec(struct dns_resource_record *rr_array, uint16_t n_rr)
|
||||||
|
{
|
||||||
|
for(uint16_t i=0; i<n_rr; i++)
|
||||||
|
{
|
||||||
|
switch(rr_array[i].type)
|
||||||
|
{
|
||||||
|
case DNS_RR_TYPE_DS:
|
||||||
|
case DNS_RR_TYPE_RRSIG:
|
||||||
|
case DNS_RR_TYPE_NSEC:
|
||||||
|
case DNS_RR_TYPE_DNSKEY:
|
||||||
|
case DNS_RR_TYPE_NSEC3:
|
||||||
|
case DNS_RR_TYPE_NSEC3PARAM:
|
||||||
|
return 1;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dns_message_resource_record_is_dnssec(struct dns_message *msg)
|
||||||
|
{
|
||||||
|
uint16_t n_answer_rr=0;
|
||||||
|
struct dns_resource_record *answer_rr=NULL;
|
||||||
|
dns_message_answer_resource_record_get0(msg, &answer_rr, &n_answer_rr);
|
||||||
|
if(dns_resource_record_is_dnssec(answer_rr, n_answer_rr)==1)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t n_authority_rr=0;
|
||||||
|
struct dns_resource_record *authority_rr=NULL;
|
||||||
|
dns_message_authority_resource_record_get0(msg, &authority_rr, &n_authority_rr);
|
||||||
|
if(dns_resource_record_is_dnssec(authority_rr, n_authority_rr)==1)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t n_additional_rr=0;
|
||||||
|
struct dns_resource_record *additional_rr=NULL;
|
||||||
|
dns_message_additional_resource_record_get0(msg, &additional_rr, &n_additional_rr);
|
||||||
|
if(dns_resource_record_is_dnssec(additional_rr, n_additional_rr)==1)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dns_resource_record_cname_get(cJSON *cname_array, struct dns_resource_record *rr, uint16_t n_rr)
|
||||||
|
{
|
||||||
|
for(uint16_t i=0; i<n_rr; i++)
|
||||||
|
{
|
||||||
|
if(rr[i].type!=DNS_RR_TYPE_CNAME)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(rr[i].rdata.cname.value_sz==0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON *cname=cJSON_CreateString((char *)(rr[i].rdata.cname.value));
|
||||||
|
cJSON_AddItemToArray(cname_array, cname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *dns_message_resource_record_cname_json_exporter(struct dns_message *msg)
|
||||||
|
{
|
||||||
|
uint16_t n_answer_rr=0;
|
||||||
|
struct dns_resource_record *answer_rr=NULL;
|
||||||
|
dns_message_answer_resource_record_get0(msg, &answer_rr, &n_answer_rr);
|
||||||
|
|
||||||
|
uint16_t n_authority_rr=0;
|
||||||
|
struct dns_resource_record *authority_rr=NULL;
|
||||||
|
dns_message_authority_resource_record_get0(msg, &authority_rr, &n_authority_rr);
|
||||||
|
|
||||||
|
uint16_t n_additional_rr=0;
|
||||||
|
struct dns_resource_record *additional_rr=NULL;
|
||||||
|
dns_message_additional_resource_record_get0(msg, &additional_rr, &n_additional_rr);
|
||||||
|
if(n_answer_rr==0 && n_authority_rr==0 && n_additional_rr==0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
cJSON *cname_object=cJSON_CreateArray();
|
||||||
|
dns_resource_record_cname_get(cname_object, answer_rr, n_answer_rr);
|
||||||
|
dns_resource_record_cname_get(cname_object, authority_rr, n_authority_rr);
|
||||||
|
dns_resource_record_cname_get(cname_object, additional_rr, n_additional_rr);
|
||||||
|
|
||||||
|
char *json_str=cJSON_PrintUnformatted(cname_object);
|
||||||
|
cJSON_Delete(cname_object);
|
||||||
|
|
||||||
|
return json_str;
|
||||||
}
|
}
|
||||||
@@ -13,8 +13,10 @@ global:
|
|||||||
*dns_message_answer_resource_record_get0*;
|
*dns_message_answer_resource_record_get0*;
|
||||||
*dns_message_authority_resource_record_get0*;
|
*dns_message_authority_resource_record_get0*;
|
||||||
*dns_message_additional_resource_record_get0*;
|
*dns_message_additional_resource_record_get0*;
|
||||||
*dns_resource_record_json_exporter*;
|
*dns_message_resource_record_json_exporter*;
|
||||||
*dns_message_transaction_index_get*;
|
*dns_message_transaction_index_get*;
|
||||||
|
*dns_message_resource_record_is_dnssec*;
|
||||||
|
*dns_message_resource_record_cname_json_exporter*;
|
||||||
*GIT*;
|
*GIT*;
|
||||||
};
|
};
|
||||||
local: *;
|
local: *;
|
||||||
|
|||||||
@@ -21,7 +21,9 @@ set(TEST_MAIN ${TEST_RUN_DIR}/plugin_test_main)
|
|||||||
|
|
||||||
|
|
||||||
# copy perf main
|
# copy perf main
|
||||||
add_test(NAME COPY_PERF_TEST_MAIN COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/dns_decoder_perf_test ${TEST_RUN_DIR}/dns_decoder_perf_test")
|
add_test(NAME MKDIR_PERF COMMAND sh -c "mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/perf/ ${CMAKE_CURRENT_BINARY_DIR}/perf/etc/dns/")
|
||||||
|
add_test(NAME COPY_PERF_TEST_MAIN COMMAND sh -c "cp ${CMAKE_BINARY_DIR}/test/dns_decoder_perf_test ${CMAKE_CURRENT_BINARY_DIR}/perf")
|
||||||
|
add_test(NAME COPY_PERF_TEST_CONF COMMAND sh -c "cp ${PROJECT_SOURCE_DIR}/bin/${PROJECT_NAME}.toml ${CMAKE_CURRENT_BINARY_DIR}/etc/dns/${PROJECT_NAME}.toml")
|
||||||
|
|
||||||
# assemble test env
|
# assemble test env
|
||||||
add_test(NAME INSTALL_TEST_MAIN COMMAND sh -c "rpm -i ${CMAKE_CURRENT_SOURCE_DIR}/env/sapp-4.3.57.16ea514-1.el8.x86_64.rpm --prefix=${CMAKE_CURRENT_BINARY_DIR}/sapp --force --nodeps")
|
add_test(NAME INSTALL_TEST_MAIN COMMAND sh -c "rpm -i ${CMAKE_CURRENT_SOURCE_DIR}/env/sapp-4.3.57.16ea514-1.el8.x86_64.rpm --prefix=${CMAKE_CURRENT_BINARY_DIR}/sapp --force --nodeps")
|
||||||
|
|||||||
@@ -841,7 +841,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_19"
|
"name": "DNS_RESULT_19"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1222,7 +1221,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_26"
|
"name": "DNS_RESULT_26"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1363,7 +1361,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_32"
|
"name": "DNS_RESULT_32"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2187,7 +2184,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_55"
|
"name": "DNS_RESULT_55"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2325,7 +2321,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_61"
|
"name": "DNS_RESULT_61"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2613,7 +2608,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_72"
|
"name": "DNS_RESULT_72"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2699,7 +2693,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_76"
|
"name": "DNS_RESULT_76"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2937,7 +2930,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_84"
|
"name": "DNS_RESULT_84"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3139,7 +3131,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_90"
|
"name": "DNS_RESULT_90"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3150,7 +3141,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_91"
|
"name": "DNS_RESULT_91"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3161,7 +3151,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_92"
|
"name": "DNS_RESULT_92"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3380,7 +3369,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_101"
|
"name": "DNS_RESULT_101"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -342,7 +342,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_4"
|
"name": "DNS_RESULT_4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2581,7 +2580,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_66"
|
"name": "DNS_RESULT_66"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2592,7 +2590,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_67"
|
"name": "DNS_RESULT_67"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3403,7 +3400,6 @@
|
|||||||
"dns_qr": 1,
|
"dns_qr": 1,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_87"
|
"name": "DNS_RESULT_87"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -69,7 +69,6 @@
|
|||||||
"dns_qr": 0,
|
"dns_qr": 0,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_3"
|
"name": "DNS_RESULT_3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
"dns_qr": 0,
|
"dns_qr": 0,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_1"
|
"name": "DNS_RESULT_1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,7 +30,6 @@
|
|||||||
"dns_qr": 0,
|
"dns_qr": 0,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 0,
|
"dns_rd": 0,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_2"
|
"name": "DNS_RESULT_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -64,7 +63,6 @@
|
|||||||
"dns_qr": 0,
|
"dns_qr": 0,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 0,
|
"dns_rd": 0,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_4"
|
"name": "DNS_RESULT_4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -121,7 +119,6 @@
|
|||||||
"dns_qr": 0,
|
"dns_qr": 0,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 0,
|
"dns_rd": 0,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_7"
|
"name": "DNS_RESULT_7"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
"dns_qr": 0,
|
"dns_qr": 0,
|
||||||
"dns_opcode": 0,
|
"dns_opcode": 0,
|
||||||
"dns_rd": 1,
|
"dns_rd": 1,
|
||||||
"rr": {},
|
|
||||||
"name": "DNS_RESULT_1"
|
"name": "DNS_RESULT_1"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -103,16 +103,7 @@ extern "C" int commit_test_result_json(cJSON *node, const char *name)
|
|||||||
void perf_resource_record_decode(struct dns_message *dns_msg)
|
void perf_resource_record_decode(struct dns_message *dns_msg)
|
||||||
{
|
{
|
||||||
TIME_START();
|
TIME_START();
|
||||||
uint16_t n_answer_rr=0;
|
|
||||||
uint16_t n_additional_rr=0;
|
|
||||||
uint16_t n_authority_rr=0;
|
|
||||||
struct dns_resource_record *answer_rr=NULL;
|
|
||||||
struct dns_resource_record *additional_rr=NULL;
|
|
||||||
struct dns_resource_record *authority_rr=NULL;
|
|
||||||
|
|
||||||
dns_message_answer_resource_record_get0(dns_msg, &answer_rr, &n_answer_rr);
|
|
||||||
dns_message_authority_resource_record_get0(dns_msg, &authority_rr, &n_authority_rr);
|
|
||||||
dns_message_additional_resource_record_get0(dns_msg, &additional_rr, &n_additional_rr);
|
|
||||||
TIME_DIFF();
|
TIME_DIFF();
|
||||||
//fieldstat_easy_histogram_record(main_env->fse.handle, tid, main_env->fse.id[PERF_TAG_QUESTION], &(main_env->fse.tag[PERF_TAG_QUESTION]), 1, time_diff_ns)
|
//fieldstat_easy_histogram_record(main_env->fse.handle, tid, main_env->fse.id[PERF_TAG_QUESTION], &(main_env->fse.tag[PERF_TAG_QUESTION]), 1, time_diff_ns)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,46 +85,13 @@ void dns_decoder_test_message_cb(struct session *ss, int topic_id, const void *m
|
|||||||
cJSON_AddNumberToObject(real_result, "dns_rd", (double)(flag->rd));
|
cJSON_AddNumberToObject(real_result, "dns_rd", (double)(flag->rd));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t n_answer_rr=0;
|
const char *resource_record_str=dns_message_resource_record_json_exporter(dns_msg);
|
||||||
struct dns_resource_record *answer_rr=NULL;
|
if(resource_record_str!=NULL)
|
||||||
dns_message_answer_resource_record_get0(dns_msg, &answer_rr, &n_answer_rr);
|
|
||||||
|
|
||||||
uint16_t n_authority_rr=0;
|
|
||||||
struct dns_resource_record *authority_rr=NULL;
|
|
||||||
dns_message_authority_resource_record_get0(dns_msg, &authority_rr, &n_authority_rr);
|
|
||||||
|
|
||||||
uint16_t n_additional_rr=0;
|
|
||||||
struct dns_resource_record *additional_rr=NULL;
|
|
||||||
dns_message_additional_resource_record_get0(dns_msg, &additional_rr, &n_additional_rr);
|
|
||||||
|
|
||||||
const char *answer=dns_resource_record_json_exporter(answer_rr, n_answer_rr);
|
|
||||||
const char *authority=dns_resource_record_json_exporter(authority_rr, n_authority_rr);
|
|
||||||
const char *additional=dns_resource_record_json_exporter(additional_rr, n_additional_rr);
|
|
||||||
|
|
||||||
cJSON *rr_array=cJSON_CreateObject();
|
|
||||||
if(answer!=NULL)
|
|
||||||
{
|
{
|
||||||
cJSON *rr_object=cJSON_Parse(answer);
|
cJSON *rr_array=cJSON_Parse(resource_record_str);
|
||||||
cJSON_AddItemToObject(rr_array, "answer", rr_object);
|
cJSON_AddItemToObject(real_result, "rr", rr_array);
|
||||||
free((void *)answer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(authority!=NULL)
|
|
||||||
{
|
|
||||||
cJSON *rr_object=cJSON_Parse(authority);
|
|
||||||
cJSON_AddItemToObject(rr_array, "authority", rr_object);
|
|
||||||
free((void *)authority);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(additional!=NULL)
|
|
||||||
{
|
|
||||||
cJSON *rr_object=cJSON_Parse(additional);
|
|
||||||
cJSON_AddItemToObject(rr_array, "additional", rr_object);
|
|
||||||
free((void *)additional);
|
|
||||||
}
|
|
||||||
|
|
||||||
cJSON_AddItemToObject(real_result, "rr", rr_array);
|
|
||||||
|
|
||||||
if(plugin_env->write_result_enable==1)
|
if(plugin_env->write_result_enable==1)
|
||||||
{
|
{
|
||||||
char *real_result_str=cJSON_Print(real_result);
|
char *real_result_str=cJSON_Print(real_result);
|
||||||
|
|||||||
Reference in New Issue
Block a user