diff options
Diffstat (limited to 'test/dns_decoder_test.cpp')
| -rw-r--r-- | test/dns_decoder_test.cpp | 95 |
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; |
