diff options
| author | liuwentan <[email protected]> | 2024-02-29 11:18:47 +0800 |
|---|---|---|
| committer | liuwentan <[email protected]> | 2024-02-29 11:18:47 +0800 |
| commit | 726f77a4645d9b3a4ed7e9a13a9205688e7f2860 (patch) | |
| tree | 994248615911a10150c71671ae36b1a77e20f8dd | |
| parent | 877b94f48de3bd0fff87634587d1ea03998768cc (diff) | |
[DNS_DECODER]change output format for unit_testdev-liuwentan
| -rw-r--r-- | src/dns_decoder/dns_decoder.h | 4 | ||||
| -rw-r--r-- | test/dns_decoder/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | test/dns_decoder/dns_decoder_gtest.cpp | 208 | ||||
| -rw-r--r-- | test/dns_decoder/dns_pcap/dns_udp_mix.pcap | bin | 0 -> 625 bytes | |||
| -rw-r--r-- | test/dns_decoder/test_result_json/dns_tcp_simple.json | 178 | ||||
| -rw-r--r-- | test/dns_decoder/test_result_json/dns_udp_mix.json | 99 | ||||
| -rw-r--r-- | test/dns_decoder/test_result_json/dns_udp_simple.json | 64 |
7 files changed, 452 insertions, 105 deletions
diff --git a/src/dns_decoder/dns_decoder.h b/src/dns_decoder/dns_decoder.h index 5ee1fdc..aaf41f5 100644 --- a/src/dns_decoder/dns_decoder.h +++ b/src/dns_decoder/dns_decoder.h @@ -80,7 +80,7 @@ struct dns_flag { }; struct dns_query_question { - uint16_t qtype; + enum dns_rr_type qtype; uint16_t qclass; uint8_t qname[DNS_NAME_MAX]; }; @@ -199,7 +199,7 @@ struct rdata_nsec3param { /* rr is short for resource record */ struct dns_rr { uint8_t name[DNS_NAME_MAX]; - uint16_t type; + enum dns_rr_type type; uint16_t rr_class; uint32_t ttl; /* 1byte: extended RCODE; 1byte: version; 2bytes: Z(upper bit) if type is OPT */ uint16_t rdlength; diff --git a/test/dns_decoder/CMakeLists.txt b/test/dns_decoder/CMakeLists.txt index b9477ce..1068b2f 100644 --- a/test/dns_decoder/CMakeLists.txt +++ b/test/dns_decoder/CMakeLists.txt @@ -39,6 +39,10 @@ add_test(NAME DNS_UDP_SIMPLE_TEST COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DI add_test(NAME DNS_TCP_SIMPLE_TEST COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_result_json/dns_tcp_simple.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/dns_pcap/ -name dns_tcp_simple.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) +add_test(NAME DNS_UDP_MIX_TEST COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_result_json/dns_udp_mix.json + -f "find ${CMAKE_CURRENT_SOURCE_DIR}/dns_pcap/ -name dns_udp_mix.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR}) + set_tests_properties(DNS_UDP_SIMPLE_TEST DNS_TCP_SIMPLE_TEST + DNS_UDP_MIX_TEST PROPERTIES FIXTURES_REQUIRED TestFixture)
\ No newline at end of file diff --git a/test/dns_decoder/dns_decoder_gtest.cpp b/test/dns_decoder/dns_decoder_gtest.cpp index 6e3a9c4..f355e80 100644 --- a/test/dns_decoder/dns_decoder_gtest.cpp +++ b/test/dns_decoder/dns_decoder_gtest.cpp @@ -36,62 +36,89 @@ int commit_test_result_json(cJSON *node, const char *name); #define DD_IPV6 6 #define MAX_KEY_STR_LEN 2048 +#define BUFF_LEN 2048 static int g_result_count = 1; int g_topic_id = 0; -typedef void rr_printer_fn(uint8_t *in_data, size_t in_data_len, - char *out_data, size_t out_data_len); - -struct rr_printer { - int rr_type; - rr_printer_fn *fn; -}; - -void print_rr_a(uint8_t *in_data, size_t in_data_len, - char *out_data, size_t out_data_len) -{ - inet_ntop(AF_INET, in_data, out_data, out_data_len); -} - -void print_rr_aaaa(uint8_t *in_data, size_t in_data_len, - char *out_data, size_t out_data_len) -{ - inet_ntop(AF_INET6, in_data, out_data, out_data_len); -} - -void print_rr_str(uint8_t *in_data, size_t in_data_len, - char *out_data, size_t out_data_len) -{ - memcpy(out_data, in_data, out_data_len); -} - -void print_rr_soa(uint8_t *in_data, size_t in_data_len, - char *out_data, size_t out_data_len) +static const char *rr_type_int2str(enum dns_rr_type type) { - memcpy(out_data, in_data, out_data_len); + switch (type) { + case DNS_RR_TYPE_A: + return "A"; + case DNS_RR_TYPE_NS: + return "NS"; + case DNS_RR_TYPE_MD: + return "MD"; + case DNS_RR_TYPE_MF: + return "MF"; + case DNS_RR_TYPE_CNAME: + return "CNAME"; + case DNS_RR_TYPE_SOA: + return "SOA"; + case DNS_RR_TYPE_MB: + return "MB"; + case DNS_RR_TYPE_MG: + return "MG"; + case DNS_RR_TYPE_MR: + return "MR"; + case DNS_RR_TYPE_NULL: + return "NULL"; + case DNS_RR_TYPE_WKS: + return "WKS"; + case DNS_RR_TYPE_PTR: + return "PTR"; + case DNS_RR_TYPE_HINFO: + return "HINFO"; + case DNS_RR_TYPE_MINFO: + return "MINFO"; + case DNS_RR_TYPE_MX: + return "MX"; + case DNS_RR_TYPE_TXT: + return "TXT"; + case DNS_RR_TYPE_RP: + return "RP"; + case DNS_RR_TYPE_ISDN: + return "ISDN"; + case DNS_RR_TYPE_AAAA: + return "AAAA"; + case DNS_RR_TYPE_SRV: + return "SRV"; + case DNS_RR_TYPE_DNAME: + return "DNAME"; + case DNS_RR_TYPE_OPT: + return "OPT"; + case DNS_RR_TYPE_DS: + return "DS"; + case DNS_RR_TYPE_RRSIG: + return "RRSIG"; + case DNS_RR_TYPE_NSEC: + return "NSEC"; + case DNS_RR_TYPE_DNSKEY: + return "DNSKEY"; + case DNS_RR_TYPE_NSEC3: + return "NSEC3"; + case DNS_RR_TYPE_NSEC3PARAM: + return "NSEC3PARAM"; + case DNS_RR_TYPE_HTTPS: + return "HTTPS"; + case DNS_RR_TYPE_AXFR: + return "AXFR"; + case DNS_RR_TYPE_MAILB: + return "MAILB"; + case DNS_RR_TYPE_MAILA: + return "MAILA"; + case DNS_RR_TYPE_ANY: + return "ANY"; + case DNS_RR_TYPE_DLV: + return "DLV"; + case DNS_RR_TYPE_UNKNOWN: + return "UNKNOWN"; + default: + return "UNKNOWN"; + } } -struct rr_printer rr_printers[] = { - {-1, NULL}, - {DNS_RR_TYPE_A, print_rr_a}, - {DNS_RR_TYPE_NS, print_rr_str}, - {DNS_RR_TYPE_MD, NULL}, - {DNS_RR_TYPE_MF, NULL}, - {DNS_RR_TYPE_CNAME, NULL}, - {DNS_RR_TYPE_SOA, print_rr_soa}, - {DNS_RR_TYPE_MB, NULL}, - {DNS_RR_TYPE_MG, NULL}, - {DNS_RR_TYPE_MR, NULL}, - {DNS_RR_TYPE_NULL, NULL}, - {DNS_RR_TYPE_WKS, NULL}, - {DNS_RR_TYPE_PTR, NULL}, - {DNS_RR_TYPE_HINFO, NULL}, - {DNS_RR_TYPE_MINFO, NULL}, - {DNS_RR_TYPE_MX, print_rr_str}, - {DNS_RR_TYPE_AAAA, print_rr_aaaa} -}; - static int dns_field_to_json(cJSON *object, const char *key, char *val, size_t val_len) { @@ -120,18 +147,34 @@ static void dns_query_to_json(cJSON *ctx, struct dns_query *query) memset(buff, 0, sizeof(buff)); sprintf(buff, "%s", query->query_question.qname); dns_field_to_json(ctx, "qname", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%s", rr_type_int2str(query->query_question.qtype)); + dns_field_to_json(ctx, "qtype", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%u", query->flag.qr); + dns_field_to_json(ctx, "flag_qr", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%u", query->flag.opcode); + dns_field_to_json(ctx, "flag_opcode", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%u", query->flag.rd); + dns_field_to_json(ctx, "flag_rd", buff, strlen(buff)); } static void rr_data_to_buff(struct dns_rr *dns_rr, char *buff, size_t buff_len) { - char tmp_buff[1024] = {0}; + char tmp_buff[BUFF_LEN] = {0}; switch (dns_rr->type) { case DNS_RR_TYPE_CNAME: memcpy(buff, dns_rr->rdata.cname, buff_len); break; case DNS_RR_TYPE_HINFO: - sprintf(tmp_buff, "%c%c%s%s", dns_rr->rdata.hinfo.os_len, + sprintf(tmp_buff, "%c %c %s %s", dns_rr->rdata.hinfo.os_len, dns_rr->rdata.hinfo.cpu_len, dns_rr->rdata.hinfo.cpu, dns_rr->rdata.hinfo.os); memcpy(buff, tmp_buff, buff_len); @@ -154,20 +197,29 @@ static void rr_data_to_buff(struct dns_rr *dns_rr, char *buff, size_t buff_len) case DNS_RR_TYPE_NS: memcpy(buff, dns_rr->rdata.ns, buff_len); break; + case DNS_RR_TYPE_MX: + sprintf(tmp_buff, "%u %s", dns_rr->rdata.mx.preference, + dns_rr->rdata.mx.exchange); + memcpy(buff, tmp_buff, buff_len); + break; case DNS_RR_TYPE_MINFO: - sprintf(tmp_buff, "%s%s", dns_rr->rdata.minfo.rmailbx, + sprintf(tmp_buff, "%s %s", dns_rr->rdata.minfo.rmailbx, dns_rr->rdata.minfo.emailbx); memcpy(buff, tmp_buff, buff_len); break; case DNS_RR_TYPE_SOA: - sprintf(tmp_buff, "%s%s%u%u%u%u%u", dns_rr->rdata.soa.mname, + sprintf(tmp_buff, "%s %s %u %u %u %u %u", dns_rr->rdata.soa.mname, dns_rr->rdata.soa.rname, dns_rr->rdata.soa.serial, dns_rr->rdata.soa.refresh, dns_rr->rdata.soa.retry, dns_rr->rdata.soa.expire, dns_rr->rdata.soa.minimum); memcpy(buff, tmp_buff, buff_len); break; case DNS_RR_TYPE_A: - inet_ntop(AF_INET, dns_rr->rdata.a, tmp_buff, 1024); + inet_ntop(AF_INET, dns_rr->rdata.a, tmp_buff, BUFF_LEN); + memcpy(buff, tmp_buff, strlen(tmp_buff)); + break; + case DNS_RR_TYPE_AAAA: + inet_ntop(AF_INET6, dns_rr->rdata.aaaa, tmp_buff, BUFF_LEN); memcpy(buff, tmp_buff, strlen(tmp_buff)); break; } @@ -175,21 +227,45 @@ static void rr_data_to_buff(struct dns_rr *dns_rr, char *buff, size_t buff_len) static void dns_response_to_json(cJSON *ctx, struct dns_response *response) { - char key[64] = {0}; - char buff[64] = {0}; + char key[BUFF_LEN] = {0}; + char buff[BUFF_LEN] = {0}; sprintf(buff, "%s", "response"); dns_field_to_json(ctx, "dns_type", buff, strlen(buff)); - size_t printer_num = sizeof(rr_printers) / sizeof(struct rr_printer); + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%s", response->query.query_question.qname); + dns_field_to_json(ctx, "qname", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%s", rr_type_int2str(response->query.query_question.qtype)); + dns_field_to_json(ctx, "qtype", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%u", response->query.flag.qr); + dns_field_to_json(ctx, "flag_qr", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%u", response->query.flag.opcode); + dns_field_to_json(ctx, "flag_opcode", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); + sprintf(buff, "%u", response->query.flag.rd); + dns_field_to_json(ctx, "flag_rd", buff, strlen(buff)); for (size_t i = 0; i < response->n_answer_rr; i++) { memset(key, 0, sizeof(key)); memset(buff, 0, sizeof(buff)); sprintf(key, "ans_rr%zu", i); + cJSON *obj = cJSON_AddObjectToObject(ctx, key); + + sprintf(buff, "%s", rr_type_int2str(response->answer_rr[i].type)); + dns_field_to_json(obj, "rr_type", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); rr_data_to_buff(&response->answer_rr[i], buff, sizeof(buff)); - dns_field_to_json(ctx, key, buff, sizeof(buff)); + dns_field_to_json(obj, "rr_data", buff, strlen(buff)); } for (size_t i = 0; i < response->n_authority_rr; i++) { @@ -197,8 +273,14 @@ static void dns_response_to_json(cJSON *ctx, struct dns_response *response) memset(buff, 0, sizeof(buff)); sprintf(key, "auth_rr%zu", i); + cJSON *obj = cJSON_AddObjectToObject(ctx, key); + + sprintf(buff, "%s", rr_type_int2str(response->authority_rr[i].type)); + dns_field_to_json(obj, "rr_type", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); rr_data_to_buff(&response->authority_rr[i], buff, sizeof(buff)); - dns_field_to_json(ctx, key, buff, strlen(buff)); + dns_field_to_json(obj, "rr_data", buff, strlen(buff)); } for (size_t i = 0; i < response->n_additional_rr; i++) { @@ -206,8 +288,14 @@ static void dns_response_to_json(cJSON *ctx, struct dns_response *response) memset(buff, 0, sizeof(buff)); sprintf(key, "addt_rr%zu", i); + cJSON *obj = cJSON_AddObjectToObject(ctx, key); + + sprintf(buff, "%s", rr_type_int2str(response->additional_rr[i].type)); + dns_field_to_json(obj, "rr_type", buff, strlen(buff)); + + memset(buff, 0, sizeof(buff)); rr_data_to_buff(&response->additional_rr[i], buff, sizeof(buff)); - dns_field_to_json(ctx, key, buff, strlen(buff)); + dns_field_to_json(obj, "rr_data", buff, strlen(buff)); } } diff --git a/test/dns_decoder/dns_pcap/dns_udp_mix.pcap b/test/dns_decoder/dns_pcap/dns_udp_mix.pcap Binary files differnew file mode 100644 index 0000000..07c7249 --- /dev/null +++ b/test/dns_decoder/dns_pcap/dns_udp_mix.pcap diff --git a/test/dns_decoder/test_result_json/dns_tcp_simple.json b/test/dns_decoder/test_result_json/dns_tcp_simple.json index 5271b83..2bad355 100644 --- a/test/dns_decoder/test_result_json/dns_tcp_simple.json +++ b/test/dns_decoder/test_result_json/dns_tcp_simple.json @@ -4,30 +4,96 @@ "transaction_id": "5e63", "dns_type": "query", "qname": "google.com", + "qtype": "A", + "flag_qr": "0", + "flag_opcode": "0", + "flag_rd": "1", "name": "DNS_DECODER_RESULT_1" }, { "Tuple4": "10.180.156.141.49342>10.2.95.39.53", "dns_type": "response", - "ans_rr0": "74.125.228.46", - "ans_rr1": "74.125.228.32", - "ans_rr2": "74.125.228.33", - "ans_rr3": "74.125.228.34", - "ans_rr4": "74.125.228.35", - "ans_rr5": "74.125.228.36", - "ans_rr6": "74.125.228.37", - "ans_rr7": "74.125.228.38", - "ans_rr8": "74.125.228.39", - "ans_rr9": "74.125.228.40", - "ans_rr10": "74.125.228.41", - "auth_rr0": "ns4.google.com", - "auth_rr1": "ns2.google.com", - "auth_rr2": "ns3.google.com", - "auth_rr3": "ns1.google.com", - "addt_rr0": "216.239.32.10", - "addt_rr1": "216.239.36.10", - "addt_rr2": "216.239.38.10", - "addt_rr3": "216.239.34.10", + "qname": "google.com", + "qtype": "A", + "flag_qr": "1", + "flag_opcode": "0", + "flag_rd": "1", + "ans_rr0": { + "rr_type": "A", + "rr_data": "74.125.228.46" + }, + "ans_rr1": { + "rr_type": "A", + "rr_data": "74.125.228.32" + }, + "ans_rr2": { + "rr_type": "A", + "rr_data": "74.125.228.33" + }, + "ans_rr3": { + "rr_type": "A", + "rr_data": "74.125.228.34" + }, + "ans_rr4": { + "rr_type": "A", + "rr_data": "74.125.228.35" + }, + "ans_rr5": { + "rr_type": "A", + "rr_data": "74.125.228.36" + }, + "ans_rr6": { + "rr_type": "A", + "rr_data": "74.125.228.37" + }, + "ans_rr7": { + "rr_type": "A", + "rr_data": "74.125.228.38" + }, + "ans_rr8": { + "rr_type": "A", + "rr_data": "74.125.228.39" + }, + "ans_rr9": { + "rr_type": "A", + "rr_data": "74.125.228.40" + }, + "ans_rr10": { + "rr_type": "A", + "rr_data": "74.125.228.41" + }, + "auth_rr0": { + "rr_type": "NS", + "rr_data": "ns4.google.com" + }, + "auth_rr1": { + "rr_type": "NS", + "rr_data": "ns2.google.com" + }, + "auth_rr2": { + "rr_type": "NS", + "rr_data": "ns3.google.com" + }, + "auth_rr3": { + "rr_type": "NS", + "rr_data": "ns1.google.com" + }, + "addt_rr0": { + "rr_type": "A", + "rr_data": "216.239.32.10" + }, + "addt_rr1": { + "rr_type": "A", + "rr_data": "216.239.36.10" + }, + "addt_rr2": { + "rr_type": "A", + "rr_data": "216.239.38.10" + }, + "addt_rr3": { + "rr_type": "A", + "rr_data": "216.239.34.10" + }, "name": "DNS_DECODER_RESULT_2" }, { @@ -35,24 +101,72 @@ "transaction_id": "e2ec", "dns_type": "query", "qname": "aol.com", + "qtype": "A", + "flag_qr": "0", + "flag_opcode": "0", + "flag_rd": "1", "name": "DNS_DECODER_RESULT_3" }, { "Tuple4": "10.180.156.141.49343>10.2.95.39.53", "dns_type": "response", - "ans_rr0": "205.188.100.58", - "ans_rr1": "205.188.101.58", - "ans_rr2": "207.200.74.38", - "ans_rr3": "64.12.79.57", - "ans_rr4": "64.12.89.186", - "auth_rr0": "dns-01.ns.aol.com", - "auth_rr1": "dns-02.ns.aol.com", - "auth_rr2": "dns-06.ns.aol.com", - "auth_rr3": "dns-07.ns.aol.com", - "addt_rr0": "64.236.1.107", - "addt_rr1": "207.200.73.80", - "addt_rr2": "64.12.51.132", - "addt_rr3": "205.188.157.232", + "qname": "aol.com", + "qtype": "A", + "flag_qr": "1", + "flag_opcode": "0", + "flag_rd": "1", + "ans_rr0": { + "rr_type": "A", + "rr_data": "205.188.100.58" + }, + "ans_rr1": { + "rr_type": "A", + "rr_data": "205.188.101.58" + }, + "ans_rr2": { + "rr_type": "A", + "rr_data": "207.200.74.38" + }, + "ans_rr3": { + "rr_type": "A", + "rr_data": "64.12.79.57" + }, + "ans_rr4": { + "rr_type": "A", + "rr_data": "64.12.89.186" + }, + "auth_rr0": { + "rr_type": "NS", + "rr_data": "dns-01.ns.aol.com" + }, + "auth_rr1": { + "rr_type": "NS", + "rr_data": "dns-02.ns.aol.com" + }, + "auth_rr2": { + "rr_type": "NS", + "rr_data": "dns-06.ns.aol.com" + }, + "auth_rr3": { + "rr_type": "NS", + "rr_data": "dns-07.ns.aol.com" + }, + "addt_rr0": { + "rr_type": "A", + "rr_data": "64.236.1.107" + }, + "addt_rr1": { + "rr_type": "A", + "rr_data": "207.200.73.80" + }, + "addt_rr2": { + "rr_type": "A", + "rr_data": "64.12.51.132" + }, + "addt_rr3": { + "rr_type": "A", + "rr_data": "205.188.157.232" + }, "name": "DNS_DECODER_RESULT_4" } ]
\ No newline at end of file diff --git a/test/dns_decoder/test_result_json/dns_udp_mix.json b/test/dns_decoder/test_result_json/dns_udp_mix.json new file mode 100644 index 0000000..2babdc2 --- /dev/null +++ b/test/dns_decoder/test_result_json/dns_udp_mix.json @@ -0,0 +1,99 @@ +[ + { + "Tuple4": "192.168.40.133.6748>192.168.40.134.53", + "transaction_id": "cdab", + "dns_type": "query", + "qname": "test.com", + "qtype": "ANY", + "flag_qr": "0", + "flag_opcode": "0", + "flag_rd": "1", + "name": "DNS_DECODER_RESULT_1" + }, + { + "Tuple4": "192.168.40.133.6748>192.168.40.134.53", + "dns_type": "response", + "qname": "test.com", + "qtype": "ANY", + "flag_qr": "1", + "flag_opcode": "0", + "flag_rd": "1", + "ans_rr0": { + "rr_type": "SOA", + "rr_data": "dns1.test.com hostmaster.test.com 2001062501 21600 3600 604800 86400" + }, + "ans_rr1": { + "rr_type": "NS", + "rr_data": "dns3.test.com" + }, + "ans_rr2": { + "rr_type": "NS", + "rr_data": "dns1.test.com" + }, + "ans_rr3": { + "rr_type": "NS", + "rr_data": "dns2.test.com" + }, + "ans_rr4": { + "rr_type": "MX", + "rr_data": "30 mail3.test.com" + }, + "ans_rr5": { + "rr_type": "MX", + "rr_data": "10 mail.test.com" + }, + "ans_rr6": { + "rr_type": "MX", + "rr_data": "20 mail2.test.com" + }, + "addt_rr0": { + "rr_type": "A", + "rr_data": "10.0.1.1" + }, + "addt_rr1": { + "rr_type": "A", + "rr_data": "10.0.1.2" + }, + "addt_rr2": { + "rr_type": "A", + "rr_data": "10.0.1.3" + }, + "addt_rr3": { + "rr_type": "A", + "rr_data": "10.0.1.5" + }, + "addt_rr4": { + "rr_type": "A", + "rr_data": "10.0.1.6" + }, + "addt_rr5": { + "rr_type": "A", + "rr_data": "10.0.1.7" + }, + "addt_rr6": { + "rr_type": "AAAA", + "rr_data": "aaaa:bbbb::1" + }, + "addt_rr7": { + "rr_type": "AAAA", + "rr_data": "aaaa:bbbb::2" + }, + "addt_rr8": { + "rr_type": "AAAA", + "rr_data": "aaaa:bbbb::3" + }, + "addt_rr9": { + "rr_type": "AAAA", + "rr_data": "aaaa:bbbb::5" + }, + "addt_rr10": { + "rr_type": "AAAA", + "rr_data": "aaaa:bbbb::6" + }, + "addt_rr11": { + "rr_type": "AAAA", + "rr_data": "aaaa:bbbb::7" + }, + "name": "DNS_DECODER_RESULT_2" + } +]
\ No newline at end of file diff --git a/test/dns_decoder/test_result_json/dns_udp_simple.json b/test/dns_decoder/test_result_json/dns_udp_simple.json index 232785c..c72033b 100644 --- a/test/dns_decoder/test_result_json/dns_udp_simple.json +++ b/test/dns_decoder/test_result_json/dns_udp_simple.json @@ -4,22 +4,64 @@ "transaction_id": "3", "dns_type": "query", "qname": "google.com", + "qtype": "A", + "flag_qr": "0", + "flag_opcode": "0", + "flag_rd": "1", "name": "DNS_DECODER_RESULT_1" }, { "Tuple4": "192.168.1.52.54585>8.8.8.8.53", "dns_type": "response", - "ans_rr0": "74.125.236.35", - "ans_rr1": "74.125.236.37", - "ans_rr2": "74.125.236.39", - "ans_rr3": "74.125.236.32", - "ans_rr4": "74.125.236.40", - "ans_rr5": "74.125.236.33", - "ans_rr6": "74.125.236.41", - "ans_rr7": "74.125.236.34", - "ans_rr8": "74.125.236.36", - "ans_rr9": "74.125.236.46", - "ans_rr10": "74.125.236.38", + "qname": "google.com", + "qtype": "A", + "flag_qr": "1", + "flag_opcode": "0", + "flag_rd": "1", + "ans_rr0": { + "rr_type": "A", + "rr_data": "74.125.236.35" + }, + "ans_rr1": { + "rr_type": "A", + "rr_data": "74.125.236.37" + }, + "ans_rr2": { + "rr_type": "A", + "rr_data": "74.125.236.39" + }, + "ans_rr3": { + "rr_type": "A", + "rr_data": "74.125.236.32" + }, + "ans_rr4": { + "rr_type": "A", + "rr_data": "74.125.236.40" + }, + "ans_rr5": { + "rr_type": "A", + "rr_data": "74.125.236.33" + }, + "ans_rr6": { + "rr_type": "A", + "rr_data": "74.125.236.41" + }, + "ans_rr7": { + "rr_type": "A", + "rr_data": "74.125.236.34" + }, + "ans_rr8": { + "rr_type": "A", + "rr_data": "74.125.236.36" + }, + "ans_rr9": { + "rr_type": "A", + "rr_data": "74.125.236.46" + }, + "ans_rr10": { + "rr_type": "A", + "rr_data": "74.125.236.38" + }, "name": "DNS_DECODER_RESULT_2" } ]
\ No newline at end of file |
