summaryrefslogtreecommitdiff
path: root/test/dns_decoder_test.cpp
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2024-06-27 01:44:07 +0000
committerliuxueli <[email protected]>2024-06-27 01:44:07 +0000
commitda0a82039f1974a4b3e5ad80116c93c0e6b1ca9c (patch)
treeb92881abe3e7de3196eb35becb01b406a9903c97 /test/dns_decoder_test.cpp
parente24a7a6fb40252fe684f3a7ea0a90693c76ade18 (diff)
Perf: yyjson replaces cjson
Diffstat (limited to 'test/dns_decoder_test.cpp')
-rw-r--r--test/dns_decoder_test.cpp95
1 files changed, 34 insertions, 61 deletions
diff --git a/test/dns_decoder_test.cpp b/test/dns_decoder_test.cpp
index 0472ad5..f0e50be 100644
--- a/test/dns_decoder_test.cpp
+++ b/test/dns_decoder_test.cpp
@@ -29,7 +29,6 @@ struct dns_decoder_test_plugin_env
int topic_id;
int result_index;
int commit_result_enable;
- int write_result_enable;
int decode_resource_record_enable;
int export_resource_record_enable;
};
@@ -64,51 +63,40 @@ void dns_decoder_test_message_cb(struct session *ss, int topic_id, const void *m
return ;
}
- cJSON *real_result=cJSON_CreateObject();
- cJSON_AddStringToObject(real_result, "Tuple4", session_get0_readable_addr(ss));
-
- uint16_t n_question=0;
- struct dns_query_question *question=NULL;
- dns_message_query_question_get0(dns_msg, &question, &n_question);
- if(n_question>0 && question!=NULL)
+ if(plugin_env->commit_result_enable==1)
{
- cJSON_AddStringToObject(real_result, "dns_qname", dns_query_question_qname_get0(question));
- cJSON_AddNumberToObject(real_result, "dns_qtype", dns_query_question_qtype_get0(question));
- cJSON_AddNumberToObject(real_result, "dns_qclass", dns_query_question_qclass_get0(question));
- }
+ cJSON *real_result=cJSON_CreateObject();
+ cJSON_AddStringToObject(real_result, "Tuple4", session_get0_readable_addr(ss));
- struct dns_flag *flag=dns_message_header_flag_get0(dns_msg);
- if(flag!=NULL)
- {
- cJSON_AddNumberToObject(real_result, "dns_qr", (double)(flag->qr));
- cJSON_AddNumberToObject(real_result, "dns_opcode", (double)(flag->opcode));
- cJSON_AddNumberToObject(real_result, "dns_rd", (double)(flag->rd));
- }
+ uint16_t n_question=0;
+ struct dns_query_question *question=NULL;
+ dns_message_query_question_get0(dns_msg, &question, &n_question);
+ if(n_question>0 && question!=NULL)
+ {
+ cJSON_AddStringToObject(real_result, "dns_qname", dns_query_question_qname_get0(question));
+ cJSON_AddNumberToObject(real_result, "dns_qtype", dns_query_question_qtype_get0(question));
+ cJSON_AddNumberToObject(real_result, "dns_qclass", dns_query_question_qclass_get0(question));
+ }
- const char *resource_record_str=dns_message_resource_record_json_exporter(dns_msg);
- if(resource_record_str!=NULL)
- {
- cJSON *rr_array=cJSON_Parse(resource_record_str);
- cJSON_AddItemToObject(real_result, "rr", rr_array);
- }
+ struct dns_flag *flag=dns_message_header_flag_get0(dns_msg);
+ if(flag!=NULL)
+ {
+ cJSON_AddNumberToObject(real_result, "dns_qr", (double)(flag->qr));
+ cJSON_AddNumberToObject(real_result, "dns_opcode", (double)(flag->opcode));
+ cJSON_AddNumberToObject(real_result, "dns_rd", (double)(flag->rd));
+ }
- if(plugin_env->write_result_enable==1)
- {
- char *real_result_str=cJSON_Print(real_result);
- dns_real_result_write_file(real_result_str);
- free(real_result_str);
- }
+ const char *resource_record_str=dns_message_resource_record_json_exporter(dns_msg);
+ if(resource_record_str!=NULL)
+ {
+ cJSON *rr_array=cJSON_Parse(resource_record_str);
+ cJSON_AddItemToObject(real_result, "rr", rr_array);
+ }
- if(plugin_env->commit_result_enable==1)
- {
char result_name[16]="";
sprintf(result_name, "DNS_RESULT_%d", plugin_env->result_index++);
commit_test_result_json(real_result, result_name);
}
- else
- {
- cJSON_Delete(real_result);
- }
}
void *dns_decoder_test_per_session_context_new(struct session *sess, void *plugin_env)
@@ -183,31 +171,16 @@ int32_t dns_decoder_test_config_load(const char *cfg_path, struct dns_decoder_te
}
}
- toml_datum_t write_result_enable_val=toml_string_in(test_tbl, "write_result_enable");
- if(write_result_enable_val.ok==0)
- {
- plugin_env->write_result_enable=0;
- fprintf(stderr, "[%s:%d] config file: %s has no key: [decoder.dns.test.write_result_enable]", __FUNCTION__, __LINE__, cfg_path);
- }
- else
- {
- if(memcmp("no", write_result_enable_val.u.s, strlen("no"))==0)
- {
- plugin_env->write_result_enable=0;
- }
- else if(memcmp("yes", write_result_enable_val.u.s, strlen("yes"))==0)
- {
- plugin_env->write_result_enable=1;
- }
- else
- {
- plugin_env->write_result_enable=1;
- fprintf(stderr, "[%s:%d] config file: %s key: [decoder.dns.test.write_result_enable] value is not yes or no", __FUNCTION__, __LINE__, cfg_path);
- }
- }
+ toml_table_t *perf_tbl=toml_table_in(test_tbl, "perf");
+ if(NULL==perf_tbl)
+ {
+ fprintf(stderr, "[%s:%d] config file: %s has no key: [decoder.dns.test.perf]", __FUNCTION__, __LINE__, cfg_path);
+ toml_free(root);
+ return -1;
+ }
// decode_resource_record_enable
- toml_datum_t decode_resource_record_enable_val=toml_string_in(test_tbl, "decode_resource_record_enable");
+ toml_datum_t decode_resource_record_enable_val=toml_string_in(perf_tbl, "decode_resource_record_enable");
if(decode_resource_record_enable_val.ok==0)
{
plugin_env->decode_resource_record_enable=0;
@@ -231,7 +204,7 @@ int32_t dns_decoder_test_config_load(const char *cfg_path, struct dns_decoder_te
}
// export_resource_record_enable
- toml_datum_t export_resource_record_enable_val=toml_string_in(test_tbl, "export_resource_record_enable");
+ toml_datum_t export_resource_record_enable_val=toml_string_in(perf_tbl, "export_resource_record_enable");
if(export_resource_record_enable_val.ok==0)
{
plugin_env->export_resource_record_enable=0;