Perf: yyjson replaces cjson
This commit is contained in:
@@ -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)
|
||||
{
|
||||
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));
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
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->write_result_enable==1)
|
||||
{
|
||||
char *real_result_str=cJSON_Print(real_result);
|
||||
dns_real_result_write_file(real_result_str);
|
||||
free(real_result_str);
|
||||
}
|
||||
|
||||
if(plugin_env->commit_result_enable==1)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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));
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user