aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/c-ares/test
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-17 23:09:13 +0300
committershadchin <shadchin@yandex-team.ru>2022-02-17 23:09:13 +0300
commit1e12ad07b2ad2362e06100f7f32e772e628bef66 (patch)
tree9981af0beb469cfef0d3d1658040f6bbf4206313 /contrib/libs/c-ares/test
parent55c6ad7179b9300375e9a16a3956dc706fcb560b (diff)
downloadydb-1e12ad07b2ad2362e06100f7f32e772e628bef66.tar.gz
Update c-ares from 0.16.1 to 0.17.2
MAKEAYAMLHAPPY-12345 ref:6a83ac3af883b2fc963128b7993f0a467b0000cb
Diffstat (limited to 'contrib/libs/c-ares/test')
-rw-r--r--contrib/libs/c-ares/test/README.md153
-rw-r--r--contrib/libs/c-ares/test/ares-test-live.cc16
-rw-r--r--contrib/libs/c-ares/test/ares-test-misc.cc32
-rw-r--r--contrib/libs/c-ares/test/ares-test-mock-ai.cc262
-rw-r--r--contrib/libs/c-ares/test/ares-test-mock.cc332
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-a.cc32
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-aaaa.cc20
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-caa.cc113
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-mx.cc16
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-naptr.cc16
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-ns.cc18
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-ptr.cc26
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-soa-any.cc16
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-soa.cc16
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-srv.cc24
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse-txt.cc18
-rw-r--r--contrib/libs/c-ares/test/ares-test-parse.cc5
-rw-r--r--contrib/libs/c-ares/test/ares-test.cc54
-rw-r--r--contrib/libs/c-ares/test/ares-test.h10
-rw-r--r--contrib/libs/c-ares/test/dns-proto-test.cc8
-rw-r--r--contrib/libs/c-ares/test/dns-proto.cc184
-rw-r--r--contrib/libs/c-ares/test/dns-proto.h60
-rw-r--r--contrib/libs/c-ares/test/ya.make11
23 files changed, 904 insertions, 538 deletions
diff --git a/contrib/libs/c-ares/test/README.md b/contrib/libs/c-ares/test/README.md
new file mode 100644
index 0000000000..9881446784
--- /dev/null
+++ b/contrib/libs/c-ares/test/README.md
@@ -0,0 +1,153 @@
+c-ares Unit Test Suite
+======================
+
+
+This directory holds unit tests for the c-ares library. To build the tests:
+
+ - Build the main c-ares library first, in the directory above this. To
+ enable tests of internal functions, configure the library build to expose
+ hidden symbols with `./configure --disable-symbol-hiding`.
+ - Generate a `configure` file by running `autoreconf -iv` (which requires
+ a local installation of
+ [autotools](https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html)).
+ - `./configure`
+ - `make`
+ - Run the tests with `./arestest`, or `./arestest -v` for extra debug info.
+
+Points to note:
+
+ - The tests are written in C++11, and so need a C++ compiler that supports
+ this. To avoid adding this as a requirement for the library, the
+ configuration and build of the tests is independent from the library.
+ - The tests include some live queries, which will fail when run on a machine
+ without internet connectivity. To skip live tests, run with
+ `./arestest --gtest_filter=-*.Live*`.
+ - The tests include queries of a mock DNS server. This server listens on port
+ 5300 by default, but the port can be changed with the `-p 5300` option to
+ `arestest`.
+
+
+Test Types
+----------
+
+The test suite includes various different types of test.
+
+ - There are live tests (`ares-test-live.cc`), which assume that the
+ current machine has a valid DNS setup and connection to the
+ internet; these tests issue queries for real domains but don't
+ particularly check what gets returned. The tests will fail on
+ an offline machine.
+ - There are some mock tests (`ares-test-mock.cc`) that set up a fake DNS
+ server and inject its port into the c-ares library configuration.
+ These tests allow specific response messages to be crafted and
+ injected, and so are likely to be used for many more tests in
+ future.
+ - To make this generation/injection easier, the `dns-proto.h`
+ file includes C++ helper classes for building DNS packets.
+ - Other library entrypoints that don't require network activity
+ (e.g. `ares_parse_*_reply`) are tested directly.
+ - A couple of the tests use a helper method of the test fixture to
+ inject memory allocation failures, using a recent change to the
+ c-ares library that allows override of `malloc`/`free`.
+ - There are some tests of the internal entrypoints of the library
+ (`ares-test-internal.c`), but these are only enabled if the library
+ was configured with `--disable-symbol-hiding` and/or
+ `--enable-expose-statics`.
+ - There is also an entrypoint to allow Clang's
+ [libfuzzer](http://llvm.org/docs/LibFuzzer.html) to drive
+ the packet parsing code in `ares_parse_*_reply`, together with a
+ standalone wrapper for it (`./aresfuzz`) to allow use of command
+ line fuzzers (such as [afl-fuzz](http://lcamtuf.coredump.cx/afl/))
+ for further [fuzz testing](#fuzzing).
+
+
+Code Coverage Information
+-------------------------
+
+To generate code coverage information:
+
+ - Configure both the library and the tests with `./configure
+ --enable-code-coverage` before building. This requires the relevant code
+ coverage tools ([gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html),
+ [lcov](http://ltp.sourceforge.net/coverage/lcov.php)) to be installed locally.
+ - Run the tests with `test/arestest`.
+ - Generate code coverage output with `make code-coverage-capture` in the
+ library directory (i.e. not in `test/`).
+
+
+Fuzzing
+-------
+
+### libFuzzer
+
+To fuzz the packet parsing code with libFuzzer, follow the main
+[libFuzzer instructions](http://llvm.org/docs/LibFuzzer.html):
+
+ - Configure the c-ares library and test suite with a recent Clang and a sanitizer, for example:
+
+ ```console
+ % export CFLAGS="-fsanitize=fuzzer-no-link,address"
+ % export CC=clang
+ % ./configure --disable-shared && make
+ ```
+ - Link each of the fuzzer entrypoints in with `ares-fuzz.cc`:
+
+ ```
+ % clang -I.. -c ares-test-fuzz.c
+ % clang -I.. -c ares-test-fuzz-name.c
+ % clang++ -fsanitize=fuzzer,address ares-test-fuzz.o ../.libs/libcares.a -o ares-libfuzzer
+ % clang++ -fsanitize=fuzzer,address ares-test-fuzz-name.o ../.libs/libcares.a -o ares-libfuzzer-name
+ ```
+ - Run the fuzzer using the starting corpus with:
+
+ ```console
+ % ./ares-libfuzzer fuzzinput/ # OR
+ % ./ares-libfuzzer-name fuzznames/
+ ```
+
+### AFL
+
+To fuzz using AFL, follow the
+[AFL quick start guide](http://lcamtuf.coredump.cx/afl/QuickStartGuide.txt):
+
+ - Download and build AFL.
+ - Configure the c-ares library and test tool to use AFL's compiler wrappers:
+
+ ```console
+ % export CC=$AFLDIR/afl-gcc
+ % ./configure --disable-shared && make
+ % cd test && ./configure && make aresfuzz aresfuzzname
+ ```
+
+ - Run the AFL fuzzer against the starting corpus:
+
+ ```console
+ % mkdir fuzzoutput
+ % $AFLDIR/afl-fuzz -i fuzzinput -o fuzzoutput -- ./aresfuzz # OR
+ % $AFLDIR/afl-fuzz -i fuzznames -o fuzzoutput -- ./aresfuzzname
+ ```
+
+### AFL Persistent Mode
+
+If a recent version of Clang is available, AFL can use its built-in compiler
+instrumentation; this configuration also allows the use of a (much) faster
+persistent mode, where multiple fuzz inputs are run for each process invocation.
+
+ - Download and build a recent AFL, and run `make` in the `llvm_mode`
+ subdirectory to ensure that `afl-clang-fast` gets built.
+ - Configure the c-ares library and test tool to use AFL's clang wrappers that
+ use compiler instrumentation:
+
+ ```console
+ % export CC=$AFLDIR/afl-clang-fast
+ % ./configure --disable-shared && make
+ % cd test && ./configure && make aresfuzz
+ ```
+
+ - Run the AFL fuzzer (in persistent mode) against the starting corpus:
+
+ ```console
+ % mkdir fuzzoutput
+ % $AFLDIR/afl-fuzz -i fuzzinput -o fuzzoutput -- ./aresfuzz
+ ```
+
diff --git a/contrib/libs/c-ares/test/ares-test-live.cc b/contrib/libs/c-ares/test/ares-test-live.cc
index 5510163e95..8107f19d08 100644
--- a/contrib/libs/c-ares/test/ares-test-live.cc
+++ b/contrib/libs/c-ares/test/ares-test-live.cc
@@ -273,7 +273,7 @@ INSTANTIATE_TEST_CASE_P(Modes, DefaultChannelModeTest,
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchA) {
SearchResult result;
- ares_search(channel_, "www.youtube.com.", ns_c_in, ns_t_a,
+ ares_search(channel_, "www.youtube.com.", C_IN, T_A,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -282,7 +282,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchA) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, LiveSearchEmptyA) {
SearchResult result;
- ares_search(channel_, "", ns_c_in, ns_t_a,
+ ares_search(channel_, "", C_IN, T_A,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -291,7 +291,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, LiveSearchEmptyA) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchNS) {
SearchResult result;
- ares_search(channel_, "google.com.", ns_c_in, ns_t_ns,
+ ares_search(channel_, "google.com.", C_IN, T_NS,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -300,7 +300,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchNS) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchMX) {
SearchResult result;
- ares_search(channel_, "google.com.", ns_c_in, ns_t_mx,
+ ares_search(channel_, "google.com.", C_IN, T_MX,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -309,7 +309,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchMX) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchTXT) {
SearchResult result;
- ares_search(channel_, "google.com.", ns_c_in, ns_t_txt,
+ ares_search(channel_, "google.com.", C_IN, T_TXT,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -318,7 +318,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchTXT) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchSOA) {
SearchResult result;
- ares_search(channel_, "google.com.", ns_c_in, ns_t_soa,
+ ares_search(channel_, "google.com.", C_IN, T_SOA,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -327,7 +327,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchSOA) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchSRV) {
SearchResult result;
- ares_search(channel_, "_imap._tcp.gmail.com.", ns_c_in, ns_t_srv,
+ ares_search(channel_, "_imap._tcp.gmail.com.", C_IN, T_SRV,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
@@ -336,7 +336,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchSRV) {
VIRT_NONVIRT_TEST_F(DefaultChannelTest, DISABLED_LiveSearchANY) {
SearchResult result;
- ares_search(channel_, "google.com.", ns_c_in, ns_t_any,
+ ares_search(channel_, "google.com.", C_IN, T_ANY,
SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
diff --git a/contrib/libs/c-ares/test/ares-test-misc.cc b/contrib/libs/c-ares/test/ares-test-misc.cc
index 6fc28a8f97..b11b04babc 100644
--- a/contrib/libs/c-ares/test/ares-test-misc.cc
+++ b/contrib/libs/c-ares/test/ares-test-misc.cc
@@ -166,13 +166,13 @@ TEST_F(LibraryTest, InetNtoP) {
TEST_F(LibraryTest, Mkquery) {
byte* p;
int len;
- ares_mkquery("example.com", ns_c_in, ns_t_a, 0x1234, 0, &p, &len);
+ ares_mkquery("example.com", C_IN, T_A, 0x1234, 0, &p, &len);
std::vector<byte> data(p, p + len);
ares_free_string(p);
std::string actual = PacketToString(data);
DNSPacket pkt;
- pkt.set_qid(0x1234).add_question(new DNSQuestion("example.com", ns_t_a));
+ pkt.set_qid(0x1234).add_question(new DNSQuestion("example.com", T_A));
std::string expected = PacketToString(pkt.data());
EXPECT_EQ(expected, actual);
}
@@ -181,14 +181,14 @@ TEST_F(LibraryTest, CreateQuery) {
byte* p;
int len;
EXPECT_EQ(ARES_SUCCESS,
- ares_create_query("exam\\@le.com", ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query("exam\\@le.com", C_IN, T_A, 0x1234, 0,
&p, &len, 0));
std::vector<byte> data(p, p + len);
ares_free_string(p);
std::string actual = PacketToString(data);
DNSPacket pkt;
- pkt.set_qid(0x1234).add_question(new DNSQuestion("exam@le.com", ns_t_a));
+ pkt.set_qid(0x1234).add_question(new DNSQuestion("exam@le.com", T_A));
std::string expected = PacketToString(pkt.data());
EXPECT_EQ(expected, actual);
}
@@ -197,7 +197,7 @@ TEST_F(LibraryTest, CreateQueryTrailingEscapedDot) {
byte* p;
int len;
EXPECT_EQ(ARES_SUCCESS,
- ares_create_query("example.com\\.", ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query("example.com\\.", C_IN, T_A, 0x1234, 0,
&p, &len, 0));
std::vector<byte> data(p, p + len);
ares_free_string(p);
@@ -215,7 +215,7 @@ TEST_F(LibraryTest, CreateQueryNameTooLong) {
"a1234567890123456789.b1234567890123456789.c1234567890123456789.d1234567890123456789."
"a1234567890123456789.b1234567890123456789.c1234567890123456789.d1234567890123456789."
"x1234567890123456789.y1234567890123456789.",
- ns_c_in, ns_t_a, 0x1234, 0, &p, &len, 0));
+ C_IN, T_A, 0x1234, 0, &p, &len, 0));
}
TEST_F(LibraryTest, CreateQueryFailures) {
@@ -228,7 +228,7 @@ TEST_F(LibraryTest, CreateQueryFailures) {
}
p = nullptr;
EXPECT_EQ(ARES_EBADNAME,
- ares_create_query(longname.c_str(), ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query(longname.c_str(), C_IN, T_A, 0x1234, 0,
&p, &len, 0));
if (p) ares_free_string(p);
@@ -236,7 +236,7 @@ TEST_F(LibraryTest, CreateQueryFailures) {
p = nullptr;
EXPECT_EQ(ARES_ENOMEM,
- ares_create_query("example.com", ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query("example.com", C_IN, T_A, 0x1234, 0,
&p, &len, 0));
if (p) ares_free_string(p);
@@ -244,14 +244,14 @@ TEST_F(LibraryTest, CreateQueryFailures) {
std::string longlabel = "a.a123456789b123456789c123456789d123456789e123456789f123456789g123456789.org";
p = nullptr;
EXPECT_EQ(ARES_EBADNAME,
- ares_create_query(longlabel.c_str(), ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query(longlabel.c_str(), C_IN, T_A, 0x1234, 0,
&p, &len, 0));
if (p) ares_free_string(p);
// Empty non-terminal label
p = nullptr;
EXPECT_EQ(ARES_EBADNAME,
- ares_create_query("example..com", ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query("example..com", C_IN, T_A, 0x1234, 0,
&p, &len, 0));
if (p) ares_free_string(p);
}
@@ -260,7 +260,7 @@ TEST_F(LibraryTest, CreateQueryOnionDomain) {
byte* p;
int len;
EXPECT_EQ(ARES_ENOTFOUND,
- ares_create_query("dontleak.onion", ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query("dontleak.onion", C_IN, T_A, 0x1234, 0,
&p, &len, 0));
}
@@ -291,7 +291,7 @@ TEST_F(DefaultChannelTest, GetAddrinfoOnionDomain) {
// still leaks information about the query to malicious resolvers.
TEST_F(DefaultChannelTest, SearchOnionDomain) {
SearchResult result;
- ares_search(channel_, "dontleak.onion", ns_c_in, ns_t_a,
+ ares_search(channel_, "dontleak.onion", C_IN, T_A,
SearchCallback, &result);
EXPECT_TRUE(result.done_);
EXPECT_EQ(ARES_ENOTFOUND, result.status_);
@@ -454,14 +454,14 @@ TEST_F(LibraryTest, CreateEDNSQuery) {
byte* p;
int len;
EXPECT_EQ(ARES_SUCCESS,
- ares_create_query("example.com", ns_c_in, ns_t_a, 0x1234, 0,
+ ares_create_query("example.com", C_IN, T_A, 0x1234, 0,
&p, &len, 1280));
std::vector<byte> data(p, p + len);
ares_free_string(p);
std::string actual = PacketToString(data);
DNSPacket pkt;
- pkt.set_qid(0x1234).add_question(new DNSQuestion("example.com", ns_t_a))
+ pkt.set_qid(0x1234).add_question(new DNSQuestion("example.com", T_A))
.add_additional(new DNSOptRR(0, 1280));
std::string expected = PacketToString(pkt.data());
EXPECT_EQ(expected, actual);
@@ -470,13 +470,13 @@ TEST_F(LibraryTest, CreateEDNSQuery) {
TEST_F(LibraryTest, CreateRootQuery) {
byte* p;
int len;
- ares_create_query(".", ns_c_in, ns_t_a, 0x1234, 0, &p, &len, 0);
+ ares_create_query(".", C_IN, T_A, 0x1234, 0, &p, &len, 0);
std::vector<byte> data(p, p + len);
ares_free_string(p);
std::string actual = PacketToString(data);
DNSPacket pkt;
- pkt.set_qid(0x1234).add_question(new DNSQuestion("", ns_t_a));
+ pkt.set_qid(0x1234).add_question(new DNSQuestion("", T_A));
std::string expected = PacketToString(pkt.data());
EXPECT_EQ(expected, actual);
}
diff --git a/contrib/libs/c-ares/test/ares-test-mock-ai.cc b/contrib/libs/c-ares/test/ares-test-mock-ai.cc
index d0df867fef..0de315a57c 100644
--- a/contrib/libs/c-ares/test/ares-test-mock-ai.cc
+++ b/contrib/libs/c-ares/test/ares-test-mock-ai.cc
@@ -61,15 +61,15 @@ MATCHER_P(IncludesV6Address, address, "") {
TEST_P(MockUDPChannelTestAI, GetAddrInfoParallelLookups) {
DNSPacket rsp1;
rsp1.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp1));
DNSPacket rsp2;
rsp2.set_response().set_aa()
- .add_question(new DNSQuestion("www.example.com", ns_t_a))
+ .add_question(new DNSQuestion("www.example.com", T_A))
.add_answer(new DNSARR("www.example.com", 100, {1, 2, 3, 4}));
- ON_CALL(server_, OnRequest("www.example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp2));
struct ares_addrinfo_hints hints = {};
@@ -103,12 +103,12 @@ TEST_P(MockUDPChannelTestAI, GetAddrInfoParallelLookups) {
TEST_P(MockUDPChannelTestAI, TruncationRetry) {
DNSPacket rsptruncated;
rsptruncated.set_response().set_aa().set_tc()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
+ .add_question(new DNSQuestion("www.google.com", T_A));
DNSPacket rspok;
rspok.set_response()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {1, 2, 3, 4}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsptruncated))
.WillOnce(SetReply(&server_, &rspok));
@@ -127,7 +127,7 @@ TEST_P(MockUDPChannelTestAI, TruncationRetry) {
// TCP only to prevent retries
TEST_P(MockTCPChannelTestAI, MalformedResponse) {
std::vector<byte> one = {0x01};
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReplyData(&server_, one));
AddrInfoResult result;
@@ -143,9 +143,9 @@ TEST_P(MockTCPChannelTestAI, MalformedResponse) {
TEST_P(MockTCPChannelTestAI, FormErrResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_formerr);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(FORMERR);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -161,9 +161,9 @@ TEST_P(MockTCPChannelTestAI, FormErrResponse) {
TEST_P(MockTCPChannelTestAI, ServFailResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_servfail);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(SERVFAIL);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -180,9 +180,9 @@ TEST_P(MockTCPChannelTestAI, ServFailResponse) {
TEST_P(MockTCPChannelTestAI, NotImplResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_notimpl);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(NOTIMP);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -192,16 +192,16 @@ TEST_P(MockTCPChannelTestAI, NotImplResponse) {
ares_getaddrinfo(channel_, "www.google.com.", NULL, &hints, AddrInfoCallback, &result);
Process();
EXPECT_TRUE(result.done_);
- // ARES_FLAG_NOCHECKRESP not set, so NOTIMPL consumed
+ // ARES_FLAG_NOCHECKRESP not set, so NOTIMP consumed
EXPECT_EQ(ARES_ECONNREFUSED, result.status_);
}
TEST_P(MockTCPChannelTestAI, RefusedResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_refused);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(REFUSED);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -218,9 +218,9 @@ TEST_P(MockTCPChannelTestAI, RefusedResponse) {
TEST_P(MockTCPChannelTestAI, YXDomainResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_yxdomain);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(YXDOMAIN);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -261,9 +261,9 @@ TEST_P(MockExtraOptsTestAI, SimpleQuery) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -278,6 +278,57 @@ TEST_P(MockExtraOptsTestAI, SimpleQuery) {
EXPECT_THAT(result.ai_, IncludesV4Address("2.3.4.5"));
}
+class MockExtraOptsNDotsTestAI
+ : public MockChannelOptsTest,
+ public ::testing::WithParamInterface< std::pair<int, bool> > {
+ public:
+ MockExtraOptsNDotsTestAI(int ndots)
+ : MockChannelOptsTest(1, GetParam().first, GetParam().second,
+ FillOptions(&opts_, ndots),
+ ARES_OPT_SOCK_SNDBUF|ARES_OPT_SOCK_RCVBUF|ARES_OPT_NDOTS) {}
+ static struct ares_options* FillOptions(struct ares_options * opts, int ndots) {
+ memset(opts, 0, sizeof(struct ares_options));
+ // Set a few options that affect socket communications
+ opts->socket_send_buffer_size = 514;
+ opts->socket_receive_buffer_size = 514;
+ opts->ndots = ndots;
+ return opts;
+ }
+ private:
+ struct ares_options opts_;
+};
+
+class MockExtraOptsNDots5TestAI : public MockExtraOptsNDotsTestAI {
+ public:
+ MockExtraOptsNDots5TestAI() : MockExtraOptsNDotsTestAI(5) {}
+};
+
+TEST_P(MockExtraOptsNDots5TestAI, SimpleQuery) {
+ ares_set_local_ip4(channel_, 0x7F000001);
+ byte addr6[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
+ ares_set_local_ip6(channel_, addr6);
+ ares_set_local_dev(channel_, "dummy");
+
+ DNSPacket rsp;
+ rsp.set_response().set_aa()
+ .add_question(new DNSQuestion("dynamodb.us-east-1.amazonaws.com", T_A))
+ .add_answer(new DNSARR("dynamodb.us-east-1.amazonaws.com", 100, {123, 45, 67, 8}));
+ ON_CALL(server_, OnRequest("dynamodb.us-east-1.amazonaws.com", T_A))
+ .WillByDefault(SetReply(&server_, &rsp));
+
+ AddrInfoResult result;
+ struct ares_addrinfo_hints hints = {};
+ hints.ai_family = AF_INET;
+ hints.ai_flags = ARES_AI_NOSORT;
+ ares_getaddrinfo(channel_, "dynamodb.us-east-1.amazonaws.com.", NULL, &hints, AddrInfoCallback, &result);
+ Process();
+ EXPECT_TRUE(result.done_);
+ EXPECT_EQ(ARES_SUCCESS, result.status_);
+ EXPECT_THAT(result.ai_, IncludesNumAddresses(1));
+ EXPECT_THAT(result.ai_, IncludesV4Address("123.45.67.8"));
+}
+
class MockFlagsChannelOptsTestAI
: public MockChannelOptsTest,
public ::testing::WithParamInterface< std::pair<int, bool> > {
@@ -302,9 +353,9 @@ class MockNoCheckRespChannelTestAI : public MockFlagsChannelOptsTestAI {
TEST_P(MockNoCheckRespChannelTestAI, ServFailResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_servfail);
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(SERVFAIL);
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -320,9 +371,9 @@ TEST_P(MockNoCheckRespChannelTestAI, ServFailResponse) {
TEST_P(MockNoCheckRespChannelTestAI, NotImplResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_notimpl);
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(NOTIMP);
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -338,9 +389,9 @@ TEST_P(MockNoCheckRespChannelTestAI, NotImplResponse) {
TEST_P(MockNoCheckRespChannelTestAI, RefusedResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_refused);
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(REFUSED);
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
AddrInfoResult result;
@@ -356,11 +407,11 @@ TEST_P(MockNoCheckRespChannelTestAI, RefusedResponse) {
TEST_P(MockChannelTestAI, FamilyV6) {
DNSPacket rsp6;
rsp6.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x21, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp6));
AddrInfoResult result;
struct ares_addrinfo_hints hints = {};
@@ -377,9 +428,9 @@ TEST_P(MockChannelTestAI, FamilyV6) {
TEST_P(MockChannelTestAI, FamilyV4) {
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
AddrInfoResult result = {};
struct ares_addrinfo_hints hints = {};
@@ -396,10 +447,10 @@ TEST_P(MockChannelTestAI, FamilyV4) {
TEST_P(MockChannelTestAI, FamilyV4_MultipleAddresses) {
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {2, 3, 4, 5}))
.add_answer(new DNSARR("example.com", 100, {7, 8, 9, 0}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
AddrInfoResult result = {};
struct ares_addrinfo_hints hints = {};
@@ -417,17 +468,17 @@ TEST_P(MockChannelTestAI, FamilyV4_MultipleAddresses) {
TEST_P(MockChannelTestAI, FamilyUnspecified) {
DNSPacket rsp6;
rsp6.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x21, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp6));
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
AddrInfoResult result;
struct ares_addrinfo_hints hints = {};
@@ -449,13 +500,13 @@ class MockEDNSChannelTestAI : public MockFlagsChannelOptsTestAI {
TEST_P(MockEDNSChannelTestAI, RetryWithoutEDNS) {
DNSPacket rspfail;
- rspfail.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
+ rspfail.set_response().set_aa().set_rcode(FORMERR)
+ .add_question(new DNSQuestion("www.google.com", T_A));
DNSPacket rspok;
rspok.set_response()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {1, 2, 3, 4}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rspfail))
.WillOnce(SetReply(&server_, &rspok));
@@ -472,20 +523,20 @@ TEST_P(MockEDNSChannelTestAI, RetryWithoutEDNS) {
TEST_P(MockChannelTestAI, SearchDomains) {
DNSPacket nofirst;
- nofirst.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ nofirst.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
- nosecond.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ nosecond.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket yesthird;
yesthird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A))
.add_answer(new DNSARR("www.third.gov", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &yesthird));
AddrInfoResult result;
@@ -501,37 +552,37 @@ TEST_P(MockChannelTestAI, SearchDomains) {
TEST_P(MockChannelTestAI, SearchDomainsServFailOnAAAA) {
DNSPacket nofirst;
- nofirst.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_aaaa));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_aaaa))
+ nofirst.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_AAAA));
+ ON_CALL(server_, OnRequest("www.first.com", T_AAAA))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nofirst4;
- nofirst4.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ nofirst4.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst4));
DNSPacket nosecond;
- nosecond.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.second.org", ns_t_aaaa));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_aaaa))
+ nosecond.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.second.org", T_AAAA));
+ ON_CALL(server_, OnRequest("www.second.org", T_AAAA))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket yessecond4;
yessecond4.set_response().set_aa()
- .add_question(new DNSQuestion("www.second.org", ns_t_a))
+ .add_question(new DNSQuestion("www.second.org", T_A))
.add_answer(new DNSARR("www.second.org", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &yessecond4));
DNSPacket failthird;
- failthird.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.third.gov", ns_t_aaaa));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_aaaa))
+ failthird.set_response().set_aa().set_rcode(SERVFAIL)
+ .add_question(new DNSQuestion("www.third.gov", T_AAAA));
+ ON_CALL(server_, OnRequest("www.third.gov", T_AAAA))
.WillByDefault(SetReply(&server_, &failthird));
DNSPacket failthird4;
- failthird4.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.third.gov", ns_t_a));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ failthird4.set_response().set_aa().set_rcode(SERVFAIL)
+ .add_question(new DNSQuestion("www.third.gov", T_A));
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &failthird4));
AddrInfoResult result;
@@ -584,39 +635,39 @@ TEST_P(RotateMultiMockTestAI, ThirdServer) {
ares_destroy_options(&opts);
DNSPacket servfailrsp;
- servfailrsp.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ servfailrsp.set_response().set_aa().set_rcode(SERVFAIL)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket notimplrsp;
- notimplrsp.set_response().set_aa().set_rcode(ns_r_notimpl)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ notimplrsp.set_response().set_aa().set_rcode(NOTIMP)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket okrsp;
okrsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.example.com", ns_t_a))
+ .add_question(new DNSQuestion("www.example.com", T_A))
.add_answer(new DNSARR("www.example.com", 100, {2,3,4,5}));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
// Second time around, starts from server [1].
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &servfailrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &notimplrsp));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &okrsp));
CheckExample();
// Third time around, starts from server [2].
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &servfailrsp));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &notimplrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &okrsp));
CheckExample();
}
@@ -629,39 +680,39 @@ TEST_P(NoRotateMultiMockTestAI, ThirdServer) {
ares_destroy_options(&opts);
DNSPacket servfailrsp;
- servfailrsp.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ servfailrsp.set_response().set_aa().set_rcode(SERVFAIL)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket notimplrsp;
- notimplrsp.set_response().set_aa().set_rcode(ns_r_notimpl)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ notimplrsp.set_response().set_aa().set_rcode(NOTIMP)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket okrsp;
okrsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.example.com", ns_t_a))
+ .add_question(new DNSQuestion("www.example.com", T_A))
.add_answer(new DNSARR("www.example.com", 100, {2,3,4,5}));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
// Second time around, still starts from server [0].
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
// Third time around, still starts from server [0].
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
}
@@ -669,10 +720,10 @@ TEST_P(NoRotateMultiMockTestAI, ThirdServer) {
TEST_P(MockChannelTestAI, FamilyV4ServiceName) {
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {1, 1, 1, 1}))
.add_answer(new DNSARR("example.com", 100, {2, 2, 2, 2}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
AddrInfoResult result = {};
struct ares_addrinfo_hints hints = {};
@@ -706,6 +757,9 @@ INSTANTIATE_TEST_CASE_P(AddressFamiliesAI, MockTCPChannelTestAI,
INSTANTIATE_TEST_CASE_P(AddressFamiliesAI, MockExtraOptsTestAI,
::testing::ValuesIn(ares::test::families_modes));
+INSTANTIATE_TEST_CASE_P(AddressFamiliesAI, MockExtraOptsNDots5TestAI,
+ ::testing::ValuesIn(ares::test::families_modes));
+
INSTANTIATE_TEST_CASE_P(AddressFamiliesAI, MockNoCheckRespChannelTestAI,
::testing::ValuesIn(ares::test::families_modes));
diff --git a/contrib/libs/c-ares/test/ares-test-mock.cc b/contrib/libs/c-ares/test/ares-test-mock.cc
index 80e9fc02b0..f4e773cf8f 100644
--- a/contrib/libs/c-ares/test/ares-test-mock.cc
+++ b/contrib/libs/c-ares/test/ares-test-mock.cc
@@ -38,7 +38,7 @@ TEST_P(MockChannelTest, Basic) {
0x01, 0x02, 0x03, 0x04
};
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReplyData(&server_, reply));
HostResult result;
@@ -54,15 +54,15 @@ TEST_P(MockChannelTest, Basic) {
TEST_P(MockUDPChannelTest, GetHostByNameParallelLookups) {
DNSPacket rsp1;
rsp1.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp1));
DNSPacket rsp2;
rsp2.set_response().set_aa()
- .add_question(new DNSQuestion("www.example.com", ns_t_a))
+ .add_question(new DNSQuestion("www.example.com", T_A))
.add_answer(new DNSARR("www.example.com", 100, {1, 2, 3, 4}));
- ON_CALL(server_, OnRequest("www.example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp2));
HostResult result1;
@@ -90,12 +90,12 @@ TEST_P(MockUDPChannelTest, GetHostByNameParallelLookups) {
TEST_P(MockUDPChannelTest, TruncationRetry) {
DNSPacket rsptruncated;
rsptruncated.set_response().set_aa().set_tc()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
+ .add_question(new DNSQuestion("www.google.com", T_A));
DNSPacket rspok;
rspok.set_response()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {1, 2, 3, 4}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsptruncated))
.WillOnce(SetReply(&server_, &rspok));
HostResult result;
@@ -118,9 +118,9 @@ static int SocketConnectCallback(ares_socket_t fd, int type, void *data) {
TEST_P(MockChannelTest, SockCallback) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {2, 3, 4, 5}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
// Get notified of new sockets
@@ -163,9 +163,9 @@ static int SocketConfigureCallback(ares_socket_t fd, int type, void *data) {
TEST_P(MockChannelTest, SockConfigureCallback) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {2, 3, 4, 5}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
// Get notified of new sockets
@@ -200,7 +200,7 @@ TEST_P(MockChannelTest, SockConfigureFailCallback) {
// TCP only to prevent retries
TEST_P(MockTCPChannelTest, MalformedResponse) {
std::vector<byte> one = {0x01};
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReplyData(&server_, one));
HostResult result;
@@ -213,9 +213,9 @@ TEST_P(MockTCPChannelTest, MalformedResponse) {
TEST_P(MockTCPChannelTest, FormErrResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_formerr);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(FORMERR);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -227,9 +227,9 @@ TEST_P(MockTCPChannelTest, FormErrResponse) {
TEST_P(MockTCPChannelTest, ServFailResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_servfail);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(SERVFAIL);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -242,24 +242,24 @@ TEST_P(MockTCPChannelTest, ServFailResponse) {
TEST_P(MockTCPChannelTest, NotImplResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_notimpl);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(NOTIMP);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
Process();
EXPECT_TRUE(result.done_);
- // ARES_FLAG_NOCHECKRESP not set, so NOTIMPL consumed
+ // ARES_FLAG_NOCHECKRESP not set, so NOTIMP consumed
EXPECT_EQ(ARES_ECONNREFUSED, result.status_);
}
TEST_P(MockTCPChannelTest, RefusedResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_refused);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(REFUSED);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -272,9 +272,9 @@ TEST_P(MockTCPChannelTest, RefusedResponse) {
TEST_P(MockTCPChannelTest, YXDomainResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_yxdomain);
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(YXDOMAIN);
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -311,9 +311,9 @@ TEST_P(MockExtraOptsTest, SimpleQuery) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
HostResult result;
@@ -349,9 +349,9 @@ class MockNoCheckRespChannelTest : public MockFlagsChannelOptsTest {
TEST_P(MockNoCheckRespChannelTest, ServFailResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_servfail);
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(SERVFAIL);
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -363,9 +363,9 @@ TEST_P(MockNoCheckRespChannelTest, ServFailResponse) {
TEST_P(MockNoCheckRespChannelTest, NotImplResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_notimpl);
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(NOTIMP);
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -377,9 +377,9 @@ TEST_P(MockNoCheckRespChannelTest, NotImplResponse) {
TEST_P(MockNoCheckRespChannelTest, RefusedResponse) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
- rsp.set_rcode(ns_r_refused);
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A));
+ rsp.set_rcode(REFUSED);
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
HostResult result;
ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
@@ -395,13 +395,13 @@ class MockEDNSChannelTest : public MockFlagsChannelOptsTest {
TEST_P(MockEDNSChannelTest, RetryWithoutEDNS) {
DNSPacket rspfail;
- rspfail.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.google.com", ns_t_a));
+ rspfail.set_response().set_aa().set_rcode(FORMERR)
+ .add_question(new DNSQuestion("www.google.com", T_A));
DNSPacket rspok;
rspok.set_response()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 100, {1, 2, 3, 4}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReply(&server_, &rspfail))
.WillOnce(SetReply(&server_, &rspok));
HostResult result;
@@ -415,20 +415,20 @@ TEST_P(MockEDNSChannelTest, RetryWithoutEDNS) {
TEST_P(MockChannelTest, SearchDomains) {
DNSPacket nofirst;
- nofirst.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ nofirst.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
- nosecond.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ nosecond.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket yesthird;
yesthird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A))
.add_answer(new DNSARR("www.third.gov", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &yesthird));
HostResult result;
@@ -443,21 +443,21 @@ TEST_P(MockChannelTest, SearchDomains) {
// Relies on retries so is UDP-only
TEST_P(MockUDPChannelTest, SearchDomainsWithResentReply) {
DNSPacket nofirst;
- nofirst.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- EXPECT_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ nofirst.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ EXPECT_CALL(server_, OnRequest("www.first.com", T_A))
.WillOnce(SetReply(&server_, &nofirst));
DNSPacket nosecond;
- nosecond.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- EXPECT_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ nosecond.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ EXPECT_CALL(server_, OnRequest("www.second.org", T_A))
.WillOnce(SetReply(&server_, &nosecond));
DNSPacket yesthird;
yesthird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A))
.add_answer(new DNSARR("www.third.gov", 0x0200, {2, 3, 4, 5}));
// Before sending the real answer, resend an earlier reply
- EXPECT_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.third.gov", T_A))
.WillOnce(DoAll(SetReply(&server_, &nofirst),
SetReplyQID(&server_, 123)))
.WillOnce(DoAll(SetReply(&server_, &yesthird),
@@ -474,25 +474,25 @@ TEST_P(MockUDPChannelTest, SearchDomainsWithResentReply) {
TEST_P(MockChannelTest, SearchDomainsBare) {
DNSPacket nofirst;
- nofirst.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ nofirst.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
- nosecond.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ nosecond.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket nothird;
- nothird.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.third.gov", ns_t_a));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ nothird.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.third.gov", T_A));
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &nothird));
DNSPacket yesbare;
yesbare.set_response().set_aa()
- .add_question(new DNSQuestion("www", ns_t_a))
+ .add_question(new DNSQuestion("www", T_A))
.add_answer(new DNSARR("www", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www", ns_t_a))
+ ON_CALL(server_, OnRequest("www", T_A))
.WillByDefault(SetReply(&server_, &yesbare));
HostResult result;
@@ -508,19 +508,19 @@ TEST_P(MockChannelTest, SearchNoDataThenSuccess) {
// First two search domains recognize the name but have no A records.
DNSPacket nofirst;
nofirst.set_response().set_aa()
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
nosecond.set_response().set_aa()
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket yesthird;
yesthird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A))
.add_answer(new DNSARR("www.third.gov", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &yesthird));
HostResult result;
@@ -536,23 +536,23 @@ TEST_P(MockChannelTest, SearchNoDataThenNoDataBare) {
// First two search domains recognize the name but have no A records.
DNSPacket nofirst;
nofirst.set_response().set_aa()
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
nosecond.set_response().set_aa()
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket nothird;
nothird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A));
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &nothird));
DNSPacket nobare;
nobare.set_response().set_aa()
- .add_question(new DNSQuestion("www", ns_t_a));
- ON_CALL(server_, OnRequest("www", ns_t_a))
+ .add_question(new DNSQuestion("www", T_A));
+ ON_CALL(server_, OnRequest("www", T_A))
.WillByDefault(SetReply(&server_, &nobare));
HostResult result;
@@ -566,23 +566,23 @@ TEST_P(MockChannelTest, SearchNoDataThenFail) {
// First two search domains recognize the name but have no A records.
DNSPacket nofirst;
nofirst.set_response().set_aa()
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
nosecond.set_response().set_aa()
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket nothird;
nothird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A));
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &nothird));
DNSPacket nobare;
- nobare.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www", ns_t_a));
- ON_CALL(server_, OnRequest("www", ns_t_a))
+ nobare.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www", T_A));
+ ON_CALL(server_, OnRequest("www", T_A))
.WillByDefault(SetReply(&server_, &nobare));
HostResult result;
@@ -595,7 +595,7 @@ TEST_P(MockChannelTest, SearchNoDataThenFail) {
TEST_P(MockChannelTest, SearchAllocFailure) {
SearchResult result;
SetAllocFail(1);
- ares_search(channel_, "fully.qualified.", ns_c_in, ns_t_a, SearchCallback, &result);
+ ares_search(channel_, "fully.qualified.", C_IN, T_A, SearchCallback, &result);
/* Already done */
EXPECT_TRUE(result.done_);
EXPECT_EQ(ARES_ENOMEM, result.status_);
@@ -603,19 +603,19 @@ TEST_P(MockChannelTest, SearchAllocFailure) {
TEST_P(MockChannelTest, SearchHighNdots) {
DNSPacket nobare;
- nobare.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("a.b.c.w.w.w", ns_t_a));
- ON_CALL(server_, OnRequest("a.b.c.w.w.w", ns_t_a))
+ nobare.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("a.b.c.w.w.w", T_A));
+ ON_CALL(server_, OnRequest("a.b.c.w.w.w", T_A))
.WillByDefault(SetReply(&server_, &nobare));
DNSPacket yesfirst;
yesfirst.set_response().set_aa()
- .add_question(new DNSQuestion("a.b.c.w.w.w.first.com", ns_t_a))
+ .add_question(new DNSQuestion("a.b.c.w.w.w.first.com", T_A))
.add_answer(new DNSARR("a.b.c.w.w.w.first.com", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("a.b.c.w.w.w.first.com", ns_t_a))
+ ON_CALL(server_, OnRequest("a.b.c.w.w.w.first.com", T_A))
.WillByDefault(SetReply(&server_, &yesfirst));
SearchResult result;
- ares_search(channel_, "a.b.c.w.w.w", ns_c_in, ns_t_a, SearchCallback, &result);
+ ares_search(channel_, "a.b.c.w.w.w", C_IN, T_A, SearchCallback, &result);
Process();
EXPECT_TRUE(result.done_);
EXPECT_EQ(ARES_SUCCESS, result.status_);
@@ -629,11 +629,11 @@ TEST_P(MockChannelTest, SearchHighNdots) {
TEST_P(MockChannelTest, UnspecifiedFamilyV6) {
DNSPacket rsp6;
rsp6.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x21, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp6));
HostResult result;
@@ -649,14 +649,14 @@ TEST_P(MockChannelTest, UnspecifiedFamilyV6) {
TEST_P(MockChannelTest, UnspecifiedFamilyV4) {
DNSPacket rsp6;
rsp6.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA));
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp6));
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
HostResult result;
@@ -671,14 +671,14 @@ TEST_P(MockChannelTest, UnspecifiedFamilyV4) {
TEST_P(MockChannelTest, UnspecifiedFamilyNoData) {
DNSPacket rsp6;
rsp6.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSCnameRR("example.com", 100, "elsewhere.com"));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp6));
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A));
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
HostResult result;
@@ -693,15 +693,15 @@ TEST_P(MockChannelTest, UnspecifiedFamilyNoData) {
TEST_P(MockChannelTest, UnspecifiedFamilyCname6A4) {
DNSPacket rsp6;
rsp6.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSCnameRR("example.com", 100, "elsewhere.com"));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp6));
DNSPacket rsp4;
rsp4.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {1, 2, 3, 4}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp4));
HostResult result;
@@ -734,11 +734,11 @@ TEST_P(MockChannelTest, ExplicitIPAllocFail) {
TEST_P(MockChannelTest, SortListV4) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {22, 23, 24, 25}))
.add_answer(new DNSARR("example.com", 100, {12, 13, 14, 15}))
.add_answer(new DNSARR("example.com", 100, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("example.com", ns_t_a))
+ ON_CALL(server_, OnRequest("example.com", T_A))
.WillByDefault(SetReply(&server_, &rsp));
{
@@ -772,14 +772,14 @@ TEST_P(MockChannelTest, SortListV4) {
TEST_P(MockChannelTest, SortListV6) {
DNSPacket rsp;
rsp.set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02}))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x21, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}));
- ON_CALL(server_, OnRequest("example.com", ns_t_aaaa))
+ ON_CALL(server_, OnRequest("example.com", T_AAAA))
.WillByDefault(SetReply(&server_, &rsp));
{
@@ -809,20 +809,20 @@ TEST_P(MockChannelTest, SortListV6) {
// Relies on retries so is UDP-only
TEST_P(MockUDPChannelTest, SearchDomainsAllocFail) {
DNSPacket nofirst;
- nofirst.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.first.com", ns_t_a));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ nofirst.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.first.com", T_A));
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &nofirst));
DNSPacket nosecond;
- nosecond.set_response().set_aa().set_rcode(ns_r_nxdomain)
- .add_question(new DNSQuestion("www.second.org", ns_t_a));
- ON_CALL(server_, OnRequest("www.second.org", ns_t_a))
+ nosecond.set_response().set_aa().set_rcode(NXDOMAIN)
+ .add_question(new DNSQuestion("www.second.org", T_A));
+ ON_CALL(server_, OnRequest("www.second.org", T_A))
.WillByDefault(SetReply(&server_, &nosecond));
DNSPacket yesthird;
yesthird.set_response().set_aa()
- .add_question(new DNSQuestion("www.third.gov", ns_t_a))
+ .add_question(new DNSQuestion("www.third.gov", T_A))
.add_answer(new DNSARR("www.third.gov", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.third.gov", ns_t_a))
+ ON_CALL(server_, OnRequest("www.third.gov", T_A))
.WillByDefault(SetReply(&server_, &yesthird));
// Fail a variety of different memory allocations, and confirm
@@ -856,10 +856,10 @@ TEST_P(MockUDPChannelTest, Resend) {
std::vector<byte> nothing;
DNSPacket reply;
reply.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 0x0100, {0x01, 0x02, 0x03, 0x04}));
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReplyData(&server_, nothing))
.WillOnce(SetReplyData(&server_, nothing))
.WillOnce(SetReply(&server_, &reply));
@@ -900,7 +900,7 @@ TEST_P(MockUDPChannelTest, CancelLater) {
std::vector<byte> nothing;
// On second request, cancel the channel.
- EXPECT_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ EXPECT_CALL(server_, OnRequest("www.google.com", T_A))
.WillOnce(SetReplyData(&server_, nothing))
.WillOnce(CancelChannel(&server_, channel_));
@@ -939,9 +939,9 @@ TEST_P(MockChannelTest, GetHostByNameDestroyRelative) {
TEST_P(MockChannelTest, GetHostByNameCNAMENoData) {
DNSPacket response;
response.set_response().set_aa()
- .add_question(new DNSQuestion("cname.first.com", ns_t_a))
+ .add_question(new DNSQuestion("cname.first.com", T_A))
.add_answer(new DNSCnameRR("cname.first.com", 100, "a.first.com"));
- ON_CALL(server_, OnRequest("cname.first.com", ns_t_a))
+ ON_CALL(server_, OnRequest("cname.first.com", T_A))
.WillByDefault(SetReply(&server_, &response));
HostResult result;
@@ -968,9 +968,9 @@ TEST_P(MockChannelTest, GetHostByAddrDestroy) {
TEST_P(MockChannelTest, HostAlias) {
DNSPacket reply;
reply.set_response().set_aa()
- .add_question(new DNSQuestion("www.google.com", ns_t_a))
+ .add_question(new DNSQuestion("www.google.com", T_A))
.add_answer(new DNSARR("www.google.com", 0x0100, {0x01, 0x02, 0x03, 0x04}));
- ON_CALL(server_, OnRequest("www.google.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
.WillByDefault(SetReply(&server_, &reply));
TempFile aliases("\n\n# www commentedout\nwww www.google.com\n");
@@ -988,9 +988,9 @@ TEST_P(MockChannelTest, HostAlias) {
TEST_P(MockChannelTest, HostAliasMissing) {
DNSPacket yesfirst;
yesfirst.set_response().set_aa()
- .add_question(new DNSQuestion("www.first.com", ns_t_a))
+ .add_question(new DNSQuestion("www.first.com", T_A))
.add_answer(new DNSARR("www.first.com", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &yesfirst));
TempFile aliases("\n\n# www commentedout\nww www.google.com\n");
@@ -1007,9 +1007,9 @@ TEST_P(MockChannelTest, HostAliasMissing) {
TEST_P(MockChannelTest, HostAliasMissingFile) {
DNSPacket yesfirst;
yesfirst.set_response().set_aa()
- .add_question(new DNSQuestion("www.first.com", ns_t_a))
+ .add_question(new DNSQuestion("www.first.com", T_A))
.add_answer(new DNSARR("www.first.com", 0x0200, {2, 3, 4, 5}));
- ON_CALL(server_, OnRequest("www.first.com", ns_t_a))
+ ON_CALL(server_, OnRequest("www.first.com", T_A))
.WillByDefault(SetReply(&server_, &yesfirst));
EnvValue with_env("HOSTALIASES", "bogus.mcfile");
@@ -1071,39 +1071,39 @@ TEST_P(RotateMultiMockTest, ThirdServer) {
ares_destroy_options(&opts);
DNSPacket servfailrsp;
- servfailrsp.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ servfailrsp.set_response().set_aa().set_rcode(SERVFAIL)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket notimplrsp;
- notimplrsp.set_response().set_aa().set_rcode(ns_r_notimpl)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ notimplrsp.set_response().set_aa().set_rcode(NOTIMP)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket okrsp;
okrsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.example.com", ns_t_a))
+ .add_question(new DNSQuestion("www.example.com", T_A))
.add_answer(new DNSARR("www.example.com", 100, {2,3,4,5}));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
// Second time around, starts from server [1].
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &servfailrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &notimplrsp));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &okrsp));
CheckExample();
// Third time around, starts from server [2].
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &servfailrsp));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &notimplrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &okrsp));
CheckExample();
}
@@ -1116,39 +1116,39 @@ TEST_P(NoRotateMultiMockTest, ThirdServer) {
ares_destroy_options(&opts);
DNSPacket servfailrsp;
- servfailrsp.set_response().set_aa().set_rcode(ns_r_servfail)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ servfailrsp.set_response().set_aa().set_rcode(SERVFAIL)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket notimplrsp;
- notimplrsp.set_response().set_aa().set_rcode(ns_r_notimpl)
- .add_question(new DNSQuestion("www.example.com", ns_t_a));
+ notimplrsp.set_response().set_aa().set_rcode(NOTIMP)
+ .add_question(new DNSQuestion("www.example.com", T_A));
DNSPacket okrsp;
okrsp.set_response().set_aa()
- .add_question(new DNSQuestion("www.example.com", ns_t_a))
+ .add_question(new DNSQuestion("www.example.com", T_A))
.add_answer(new DNSARR("www.example.com", 100, {2,3,4,5}));
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
// Second time around, still starts from server [0].
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
// Third time around, still starts from server [0].
- EXPECT_CALL(*servers_[0], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[0], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[0].get(), &servfailrsp));
- EXPECT_CALL(*servers_[1], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[1], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[1].get(), &notimplrsp));
- EXPECT_CALL(*servers_[2], OnRequest("www.example.com", ns_t_a))
+ EXPECT_CALL(*servers_[2], OnRequest("www.example.com", T_A))
.WillOnce(SetReply(servers_[2].get(), &okrsp));
CheckExample();
}
diff --git a/contrib/libs/c-ares/test/ares-test-parse-a.cc b/contrib/libs/c-ares/test/ares-test-parse-a.cc
index 7f6a987c13..f8050ac708 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-a.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-a.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseAReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 0x01020304, {2,3,4,5}))
.add_answer(new DNSAaaaRR("example.com", 0x01020304, {0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5}));
std::vector<byte> data = {
@@ -119,7 +119,7 @@ TEST_F(LibraryTest, ParseMalformedAReply) {
TEST_F(LibraryTest, ParseAReplyNoData) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a));
+ .add_question(new DNSQuestion("example.com", T_A));
std::vector<byte> data = pkt.data();
struct hostent *host = nullptr;
struct ares_addrttl info[2];
@@ -146,7 +146,7 @@ TEST_F(LibraryTest, ParseAReplyNoData) {
TEST_F(LibraryTest, ParseAReplyVariantA) {
DNSPacket pkt;
pkt.set_qid(6366).set_rd().set_ra()
- .add_question(new DNSQuestion("mit.edu", ns_t_a))
+ .add_question(new DNSQuestion("mit.edu", T_A))
.add_answer(new DNSARR("mit.edu", 52, {18,7,22,69}))
.add_auth(new DNSNsRR("mit.edu", 292, "W20NS.mit.edu"))
.add_auth(new DNSNsRR("mit.edu", 292, "BITSY.mit.edu"))
@@ -167,7 +167,7 @@ TEST_F(LibraryTest, ParseAReplyVariantA) {
TEST_F(LibraryTest, ParseAReplyJustCname) {
DNSPacket pkt;
pkt.set_qid(6366).set_rd().set_ra()
- .add_question(new DNSQuestion("mit.edu", ns_t_a))
+ .add_question(new DNSQuestion("mit.edu", T_A))
.add_answer(new DNSCnameRR("mit.edu", 52, "other.mit.edu"));
struct hostent *host = nullptr;
struct ares_addrttl info[2];
@@ -186,7 +186,7 @@ TEST_F(LibraryTest, ParseAReplyJustCname) {
TEST_F(LibraryTest, ParseAReplyVariantCname) {
DNSPacket pkt;
pkt.set_qid(6366).set_rd().set_ra()
- .add_question(new DNSQuestion("query.example.com", ns_t_a))
+ .add_question(new DNSQuestion("query.example.com", T_A))
.add_answer(new DNSCnameRR("query.example.com", 200, "redirect.query.example.com"))
.add_answer(new DNSARR("redirect.query.example.com", 300, {129,97,123,22}))
.add_auth(new DNSNsRR("example.com", 218, "aa.ns1.example.com"))
@@ -218,7 +218,7 @@ TEST_F(LibraryTest, ParseAReplyVariantCname) {
TEST_F(LibraryTest, ParseAReplyVariantCnameChain) {
DNSPacket pkt;
pkt.set_qid(6366).set_rd().set_ra()
- .add_question(new DNSQuestion("c1.localhost", ns_t_a))
+ .add_question(new DNSQuestion("c1.localhost", T_A))
.add_answer(new DNSCnameRR("c1.localhost", 604800, "c2.localhost"))
.add_answer(new DNSCnameRR("c2.localhost", 604800, "c3.localhost"))
.add_answer(new DNSCnameRR("c3.localhost", 604800, "c4.localhost"))
@@ -243,7 +243,7 @@ TEST_F(LibraryTest, ParseAReplyVariantCnameChain) {
TEST_F(LibraryTest, DISABLED_ParseAReplyVariantCnameLast) {
DNSPacket pkt;
pkt.set_qid(6366).set_rd().set_ra()
- .add_question(new DNSQuestion("query.example.com", ns_t_a))
+ .add_question(new DNSQuestion("query.example.com", T_A))
.add_answer(new DNSARR("redirect.query.example.com", 300, {129,97,123,221}))
.add_answer(new DNSARR("redirect.query.example.com", 300, {129,97,123,222}))
.add_answer(new DNSARR("redirect.query.example.com", 300, {129,97,123,223}))
@@ -271,7 +271,7 @@ TEST_F(LibraryTest, DISABLED_ParseAReplyVariantCnameLast) {
TEST_F(LibraryTest, ParseAReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSARR("example.com", 100, {0x02, 0x03, 0x04, 0x05}));
std::vector<byte> data;
@@ -285,17 +285,17 @@ TEST_F(LibraryTest, ParseAReplyErrors) {
EXPECT_EQ(ARES_EBADRESP, ares_parse_a_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
- pkt.add_question(new DNSQuestion("example.com", ns_t_a));
+ pkt.add_question(new DNSQuestion("example.com", T_A));
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_a));
+ pkt.add_question(new DNSQuestion("Axample.com", T_A));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_a_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_a));
+ pkt.add_question(new DNSQuestion("example.com", T_A));
#ifdef DISABLED
// Not a response.
@@ -307,22 +307,22 @@ TEST_F(LibraryTest, ParseAReplyErrors) {
pkt.set_response(true);
// Bad return code.
- pkt.set_rcode(ns_r_formerr);
+ pkt.set_rcode(FORMERR);
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_a_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
- pkt.set_rcode(ns_r_noerror);
+ pkt.set_rcode(NOERROR);
#endif
// Two questions
- pkt.add_question(new DNSQuestion("example.com", ns_t_a));
+ pkt.add_question(new DNSQuestion("example.com", T_A));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_a_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_a));
+ pkt.add_question(new DNSQuestion("example.com", T_A));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -356,7 +356,7 @@ TEST_F(LibraryTest, ParseAReplyErrors) {
TEST_F(LibraryTest, ParseAReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_a))
+ .add_question(new DNSQuestion("example.com", T_A))
.add_answer(new DNSCnameRR("example.com", 300, "c.example.com"))
.add_answer(new DNSARR("c.example.com", 500, {0x02, 0x03, 0x04, 0x05}));
std::vector<byte> data = pkt.data();
diff --git a/contrib/libs/c-ares/test/ares-test-parse-aaaa.cc b/contrib/libs/c-ares/test/ares-test-parse-aaaa.cc
index 1314c837a6..df56529680 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-aaaa.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-aaaa.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseAaaaReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04}))
@@ -40,7 +40,7 @@ TEST_F(LibraryTest, ParseAaaaReplyOK) {
TEST_F(LibraryTest, ParseAaaaReplyCname) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSCnameRR("example.com", 50, "c.example.com"))
.add_answer(new DNSAaaaRR("c.example.com", 100,
{0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
@@ -75,7 +75,7 @@ TEST_F(LibraryTest, ParseAaaaReplyCname) {
TEST_F(LibraryTest, ParseAaaaReplyNoData) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa));
+ .add_question(new DNSQuestion("example.com", T_AAAA));
std::vector<byte> data = pkt.data();
struct hostent *host = nullptr;
struct ares_addr6ttl info[2];
@@ -96,7 +96,7 @@ TEST_F(LibraryTest, ParseAaaaReplyNoData) {
TEST_F(LibraryTest, ParseAaaaReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSAaaaRR("example.com", 100,
{0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 0x04}));
@@ -112,26 +112,26 @@ TEST_F(LibraryTest, ParseAaaaReplyErrors) {
EXPECT_EQ(ARES_EBADRESP, ares_parse_aaaa_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
- pkt.add_question(new DNSQuestion("example.com", ns_t_aaaa));
+ pkt.add_question(new DNSQuestion("example.com", T_AAAA));
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_aaaa));
+ pkt.add_question(new DNSQuestion("Axample.com", T_AAAA));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_aaaa_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_aaaa));
+ pkt.add_question(new DNSQuestion("example.com", T_AAAA));
// Two questions.
- pkt.add_question(new DNSQuestion("example.com", ns_t_aaaa));
+ pkt.add_question(new DNSQuestion("example.com", T_AAAA));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_aaaa_reply(data.data(), data.size(),
&host, info, &count));
EXPECT_EQ(nullptr, host);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_aaaa));
+ pkt.add_question(new DNSQuestion("example.com", T_AAAA));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -169,7 +169,7 @@ TEST_F(LibraryTest, ParseAaaaReplyErrors) {
TEST_F(LibraryTest, ParseAaaaReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_aaaa))
+ .add_question(new DNSQuestion("example.com", T_AAAA))
.add_answer(new DNSCnameRR("example.com", 300, "c.example.com"))
.add_answer(new DNSAaaaRR("c.example.com", 100,
{0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
diff --git a/contrib/libs/c-ares/test/ares-test-parse-caa.cc b/contrib/libs/c-ares/test/ares-test-parse-caa.cc
new file mode 100644
index 0000000000..99903edf71
--- /dev/null
+++ b/contrib/libs/c-ares/test/ares-test-parse-caa.cc
@@ -0,0 +1,113 @@
+#include "ares-test.h"
+#include "dns-proto.h"
+
+#include <sstream>
+#include <vector>
+
+namespace ares {
+namespace test {
+
+TEST_F(LibraryTest, ParseCaaReplyMultipleOK) {
+ std::vector<byte> data = {
+ 0x27, 0x86, 0x81, 0x80, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x09, 0x77, 0x69, 0x6B, // '............wik
+ 0x69, 0x70, 0x65, 0x64, 0x69, 0x61, 0x03, 0x6F, 0x72, 0x67, 0x00, 0x01, 0x01, 0x00, 0x01, 0xC0, // ipedia.org......
+ 0x0C, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x23, 0x00, 0x15, 0x00, 0x05, 0x69, 0x73, 0x73, // ........#....iss
+ 0x75, 0x65, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x73, 0x69, 0x67, 0x6E, 0x2E, 0x63, 0x6F, 0x6D, // ueglobalsign.com
+ 0xC0, 0x0C, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x23, 0x00, 0x13, 0x00, 0x05, 0x69, 0x73, // .........#....is
+ 0x73, 0x75, 0x65, 0x64, 0x69, 0x67, 0x69, 0x63, 0x65, 0x72, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0xC0, // suedigicert.com.
+ 0x0C, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x23, 0x00, 0x16, 0x00, 0x05, 0x69, 0x73, 0x73, // ........#....iss
+ 0x75, 0x65, 0x6C, 0x65, 0x74, 0x73, 0x65, 0x6E, 0x63, 0x72, 0x79, 0x70, 0x74, 0x2E, 0x6F, 0x72, // ueletsencrypt.or
+ 0x67, 0xC0, 0x0C, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x23, 0x00, 0x25, 0x00, 0x05, 0x69, // g.........#.%..i
+ 0x6F, 0x64, 0x65, 0x66, 0x6D, 0x61, 0x69, 0x6C, 0x74, 0x6F, 0x3A, 0x64, 0x6E, 0x73, 0x2D, 0x61, // odefmailto:dns-a
+ 0x64, 0x6D, 0x69, 0x6E, 0x40, 0x77, 0x69, 0x6B, 0x69, 0x6D, 0x65, 0x64, 0x69, 0x61, 0x2E, 0x6F, // dmin@wikimedia.o
+ 0x72, 0x67 // rg
+ };
+
+ struct ares_caa_reply* caa = nullptr;
+ EXPECT_EQ(ARES_SUCCESS, ares_parse_caa_reply(data.data(), data.size(), &caa));
+ ASSERT_NE(nullptr, caa);
+ ASSERT_NE(nullptr, caa->next);
+ ASSERT_NE(nullptr, caa->next->next);
+ ASSERT_NE(nullptr, caa->next->next->next);
+
+ ares_free_data(caa);
+}
+
+TEST_F(LibraryTest, ParseCaaReplySingleOK) {
+ std::vector<byte> data = {
+ 0x27, 0x86, 0x81, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x67, 0x6F, 0x6F, // '............goo
+ 0x67, 0x6C, 0x65, 0x03, 0x63, 0x6F, 0x6D, 0x00, 0x01, 0x01, 0x00, 0x01, 0xC0, 0x0C, 0x01, 0x01, // gle.com.........
+ 0x00, 0x01, 0x00, 0x01, 0x43, 0xBE, 0x00, 0x0F, 0x00, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x70, // ....C.....issuep
+ 0x6B, 0x69, 0x2E, 0x67, 0x6F, 0x6F, 0x67 // ki.goog
+ };
+
+ struct ares_caa_reply* caa = nullptr;
+ EXPECT_EQ(ARES_SUCCESS, ares_parse_caa_reply(data.data(), data.size(), &caa));
+ ASSERT_NE(nullptr, caa);
+
+ EXPECT_EQ(caa->critical, 0);
+ EXPECT_EQ(caa->plength, 5);
+ EXPECT_STREQ((char *)caa->property, "issue");
+ EXPECT_EQ(caa->length, 8);
+ EXPECT_STREQ((char *)caa->value, "pki.goog");
+
+ ares_free_data(caa);
+}
+
+TEST_F(LibraryTest, ParseCaaBogusReply1) {
+ std::vector<byte> data = {
+ 0x27, 0x86, 0x81, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x67, 0x6F, 0x6F, // '............goo
+ 0x67, 0x6C, 0x65, 0x03, 0x63, 0x6F, 0x6D, 0x00, 0x01, 0x01, 0x00, 0x01, 0xC0, 0x0C, 0x01, 0x01, // gle.com.........
+ 0x00, 0x01, 0x00, 0x01, 0x43, 0xBE, 0x00, 0x0F, 0x00, 0x00, 0x69, 0x73, 0x73, 0x75, 0x65, 0x70, // ....C.....issuep
+ 0x6B, 0x69, 0x2E, 0x67, 0x6F, 0x6F, 0x67 // ki.goog
+ };
+
+ struct ares_caa_reply* caa = nullptr;
+ EXPECT_EQ(ARES_EBADRESP, ares_parse_caa_reply(data.data(), data.size(), &caa));
+ ASSERT_EQ(nullptr, caa);
+}
+
+TEST_F(LibraryTest, ParseCaaBogusReply2) {
+ std::vector<byte> data = {
+ 0x27, 0x86, 0x81, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x67, 0x6F, 0x6F, // '............goo
+ 0x67, 0x6C, 0x65, 0x03, 0x63, 0x6F, 0x6D, 0x00, 0x01, 0x01, 0x00, 0x01, 0xC0, 0x0C, 0x01, 0x01, // gle.com.........
+ 0x00, 0x01, 0x00, 0x01, 0x43, 0xBE, 0x00, 0x0F, 0x00, 0x0e, 0x69, 0x73, 0x73, 0x75, 0x65, 0x70, // ....C.....issuep
+ 0x6B, 0x69, 0x2E, 0x67, 0x6F, 0x6F, 0x67 // ki.goog
+ };
+
+ struct ares_caa_reply* caa = nullptr;
+ EXPECT_EQ(ARES_EBADRESP, ares_parse_caa_reply(data.data(), data.size(), &caa));
+ ASSERT_EQ(nullptr, caa);
+}
+
+TEST_F(LibraryTest, ParseCaaBogusReply3) {
+ std::vector<byte> data = {
+ 0x27, 0x86, 0x81, 0x80, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x67, 0x6F, 0x6F, // '............goo
+ 0x67, 0x6C, 0x65, 0x03, 0x63, 0x6F, 0x6D, 0x00, 0x01, 0x01, 0x00, 0x01, 0xC0, 0x0C, 0x01, 0x01, // gle.com.........
+ 0x00, 0x01, 0x00, 0x01, 0x43, 0xBE, 0x00, 0x10, 0x00, 0x05, 0x69, 0x73, 0x73, 0x75, 0x65, 0x70, // ....C.....issuep
+ 0x6B, 0x69, 0x2E, 0x67, 0x6F, 0x6F, 0x67 // ki.goog
+ };
+
+ struct ares_caa_reply* caa = nullptr;
+ EXPECT_EQ(ARES_EBADRESP, ares_parse_caa_reply(data.data(), data.size(), &caa));
+ ASSERT_EQ(nullptr, caa);
+}
+
+TEST_F(LibraryTest, ParseCaaEmptyReply) {
+ std::vector<byte> data = {
+ 0x27, 0x86, 0x81, 0x80, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x09, 0x77, 0x69, 0x6B, // '............wik
+ 0x69, 0x70, 0x65, 0x64, 0x69, 0x61, 0x02, 0x64, 0x65, 0x00, 0x01, 0x01, 0x00, 0x01, 0xC0, 0x0C, // ipedia.de.......
+ 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x02, 0x58, 0x00, 0x3B, 0x04, 0x6E, 0x73, 0x38, 0x31, 0x0D, // .......X.;.ns81.
+ 0x64, 0x6F, 0x6D, 0x61, 0x69, 0x6E, 0x63, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x03, 0x63, 0x6F, // domaincontrol.co
+ 0x6D, 0x00, 0x03, 0x64, 0x6E, 0x73, 0x05, 0x6A, 0x6F, 0x6D, 0x61, 0x78, 0x03, 0x6E, 0x65, 0x74, // m..dns.jomax.net
+ 0x00, 0x78, 0x67, 0xFE, 0x34, 0x00, 0x00, 0x70, 0x80, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x3A, // .xg.4..p.... ..:
+ 0x80, 0x00, 0x00, 0x02, 0x58 // ....X
+ };
+
+ struct ares_caa_reply* caa = nullptr;
+ EXPECT_EQ(ARES_ENODATA, ares_parse_caa_reply(data.data(), data.size(), &caa));
+ ASSERT_EQ(nullptr, caa);
+}
+
+} // namespace test
+} // namespace ares
diff --git a/contrib/libs/c-ares/test/ares-test-parse-mx.cc b/contrib/libs/c-ares/test/ares-test-parse-mx.cc
index 37324a6d4c..db8fa89404 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-mx.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-mx.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseMxReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSMxRR("example.com", 100, 100, "mx1.example.com"))
.add_answer(new DNSMxRR("example.com", 100, 200, "mx2.example.com"));
std::vector<byte> data = pkt.data();
@@ -65,7 +65,7 @@ TEST_F(LibraryTest, ParseMxReplyMalformed) {
TEST_F(LibraryTest, ParseMxReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSMxRR("example.com", 100, 100, "mx1.example.com"));
std::vector<byte> data;
struct ares_mx_reply* mx = nullptr;
@@ -75,25 +75,25 @@ TEST_F(LibraryTest, ParseMxReplyErrors) {
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_mx_reply(data.data(), data.size(), &mx));
EXPECT_EQ(nullptr, mx);
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("Axample.com", T_MX));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_mx_reply(data.data(), data.size(), &mx));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
#endif
// Two questions.
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_mx_reply(data.data(), data.size(), &mx));
EXPECT_EQ(nullptr, mx);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
// Wrong sort of answer.
// TODO(drysdale): check if this should be ARES_ENODATA?
@@ -124,7 +124,7 @@ TEST_F(LibraryTest, ParseMxReplyErrors) {
TEST_F(LibraryTest, ParseMxReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSCnameRR("example.com", 300, "c.example.com"))
.add_answer(new DNSMxRR("c.example.com", 100, 100, "mx1.example.com"));
std::vector<byte> data = pkt.data();
diff --git a/contrib/libs/c-ares/test/ares-test-parse-naptr.cc b/contrib/libs/c-ares/test/ares-test-parse-naptr.cc
index 3238a1923d..aa1a2a5029 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-naptr.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-naptr.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseNaptrReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_naptr))
+ .add_question(new DNSQuestion("example.com", T_NAPTR))
.add_answer(new DNSNaptrRR("example.com", 100,
10, 20, "SP", "service", "regexp", "replace"))
.add_answer(new DNSNaptrRR("example.com", 0x0010,
@@ -43,7 +43,7 @@ TEST_F(LibraryTest, ParseNaptrReplyOK) {
TEST_F(LibraryTest, ParseNaptrReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_naptr))
+ .add_question(new DNSQuestion("example.com", T_NAPTR))
.add_answer(new DNSNaptrRR("example.com", 100,
10, 20, "SP", "service", "regexp", "replace"));
std::vector<byte> data;
@@ -53,24 +53,24 @@ TEST_F(LibraryTest, ParseNaptrReplyErrors) {
pkt.questions_.clear();
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_naptr_reply(data.data(), data.size(), &naptr));
- pkt.add_question(new DNSQuestion("example.com", ns_t_naptr));
+ pkt.add_question(new DNSQuestion("example.com", T_NAPTR));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_naptr));
+ pkt.add_question(new DNSQuestion("Axample.com", T_NAPTR));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_naptr_reply(data.data(), data.size(), &naptr));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_naptr));
+ pkt.add_question(new DNSQuestion("example.com", T_NAPTR));
#endif
// Two questions
- pkt.add_question(new DNSQuestion("example.com", ns_t_naptr));
+ pkt.add_question(new DNSQuestion("example.com", T_NAPTR));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_naptr_reply(data.data(), data.size(), &naptr));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_naptr));
+ pkt.add_question(new DNSQuestion("example.com", T_NAPTR));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -129,7 +129,7 @@ TEST_F(LibraryTest, ParseNaptrReplyTooShort) {
TEST_F(LibraryTest, ParseNaptrReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_naptr))
+ .add_question(new DNSQuestion("example.com", T_NAPTR))
.add_answer(new DNSNaptrRR("example.com", 100,
10, 20, "SP", "service", "regexp", "replace"))
.add_answer(new DNSNaptrRR("example.com", 0x0010,
diff --git a/contrib/libs/c-ares/test/ares-test-parse-ns.cc b/contrib/libs/c-ares/test/ares-test-parse-ns.cc
index cd65318969..316492174c 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-ns.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-ns.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseNsReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_ns))
+ .add_question(new DNSQuestion("example.com", T_NS))
.add_answer(new DNSNsRR("example.com", 100, "ns.example.com"));
std::vector<byte> data = pkt.data();
@@ -26,7 +26,7 @@ TEST_F(LibraryTest, ParseNsReplyOK) {
TEST_F(LibraryTest, ParseNsReplyMultiple) {
DNSPacket pkt;
pkt.set_qid(10501).set_response().set_rd().set_ra()
- .add_question(new DNSQuestion("google.com", ns_t_ns))
+ .add_question(new DNSQuestion("google.com", T_NS))
.add_answer(new DNSNsRR("google.com", 59, "ns1.google.com"))
.add_answer(new DNSNsRR("google.com", 59, "ns2.google.com"))
.add_answer(new DNSNsRR("google.com", 59, "ns3.google.com"))
@@ -49,7 +49,7 @@ TEST_F(LibraryTest, ParseNsReplyMultiple) {
TEST_F(LibraryTest, ParseNsReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_ns))
+ .add_question(new DNSQuestion("example.com", T_NS))
.add_answer(new DNSNsRR("example.com", 100, "ns.example.com"));
std::vector<byte> data;
struct hostent *host = nullptr;
@@ -58,24 +58,24 @@ TEST_F(LibraryTest, ParseNsReplyErrors) {
pkt.questions_.clear();
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_ns_reply(data.data(), data.size(), &host));
- pkt.add_question(new DNSQuestion("example.com", ns_t_ns));
+ pkt.add_question(new DNSQuestion("example.com", T_NS));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_ns));
+ pkt.add_question(new DNSQuestion("Axample.com", T_NS));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_ns_reply(data.data(), data.size(), &host));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_ns));
+ pkt.add_question(new DNSQuestion("example.com", T_NS));
#endif
// Two questions.
- pkt.add_question(new DNSQuestion("example.com", ns_t_ns));
+ pkt.add_question(new DNSQuestion("example.com", T_NS));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_ns_reply(data.data(), data.size(), &host));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_ns));
+ pkt.add_question(new DNSQuestion("example.com", T_NS));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -101,7 +101,7 @@ TEST_F(LibraryTest, ParseNsReplyErrors) {
TEST_F(LibraryTest, ParseNsReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_ns))
+ .add_question(new DNSQuestion("example.com", T_NS))
.add_answer(new DNSCnameRR("example.com", 300, "c.example.com"))
.add_answer(new DNSNsRR("c.example.com", 100, "ns.example.com"));
std::vector<byte> data = pkt.data();
diff --git a/contrib/libs/c-ares/test/ares-test-parse-ptr.cc b/contrib/libs/c-ares/test/ares-test-parse-ptr.cc
index 75f74c16f7..e8fcac3224 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-ptr.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-ptr.cc
@@ -11,7 +11,7 @@ TEST_F(LibraryTest, ParsePtrReplyOK) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other.com"));
std::vector<byte> data = pkt.data();
@@ -29,7 +29,7 @@ TEST_F(LibraryTest, ParsePtrReplyCname) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSCnameRR("64.48.32.16.in-addr.arpa", 50, "64.48.32.8.in-addr.arpa"))
.add_answer(new DNSPtrRR("64.48.32.8.in-addr.arpa", 100, "other.com"));
std::vector<byte> data = pkt.data();
@@ -63,7 +63,7 @@ TEST_F(LibraryTest, ParsePtrReplyMalformedCname) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSMalformedCnameRR("64.48.32.16.in-addr.arpa", 50, "64.48.32.8.in-addr.arpa"))
.add_answer(new DNSPtrRR("64.48.32.8.in-addr.arpa", 100, "other.com"));
std::vector<byte> data = pkt.data();
@@ -78,7 +78,7 @@ TEST_F(LibraryTest, ParseManyPtrReply) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "main.com"))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other1.com"))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other2.com"))
@@ -102,7 +102,7 @@ TEST_F(LibraryTest, ParsePtrReplyAdditional) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 55, "other.com"))
.add_auth(new DNSNsRR("16.in-addr.arpa", 234, "ns1.other.com"))
.add_auth(new DNSNsRR("16.in-addr.arpa", 234, "bb.ns2.other.com"))
@@ -126,7 +126,7 @@ TEST_F(LibraryTest, ParsePtrReplyErrors) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other.com"));
std::vector<byte> data;
struct hostent *host = nullptr;
@@ -136,26 +136,26 @@ TEST_F(LibraryTest, ParsePtrReplyErrors) {
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_ptr_reply(data.data(), data.size(),
addrv4, sizeof(addrv4), AF_INET, &host, NULL));
- pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr));
+ pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR));
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("99.48.32.16.in-addr.arpa", ns_t_ptr));
+ pkt.add_question(new DNSQuestion("99.48.32.16.in-addr.arpa", T_PTR));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_ptr_reply(data.data(), data.size(),
addrv4, sizeof(addrv4), AF_INET, &host, NULL));
EXPECT_EQ(nullptr, host);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr));
+ pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR));
// Two questions.
- pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr));
+ pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_ptr_reply(data.data(), data.size(),
addrv4, sizeof(addrv4), AF_INET, &host, NULL));
EXPECT_EQ(nullptr, host);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr));
+ pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -197,7 +197,7 @@ TEST_F(LibraryTest, ParsePtrReplyAllocFailSome) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "main.com"))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other1.com"))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other2.com"))
@@ -217,7 +217,7 @@ TEST_F(LibraryTest, ParsePtrReplyAllocFailMany) {
byte addrv4[4] = {0x10, 0x20, 0x30, 0x40};
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr))
+ .add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "main.com"))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other1.com"))
.add_answer(new DNSPtrRR("64.48.32.16.in-addr.arpa", 100, "other2.com"))
diff --git a/contrib/libs/c-ares/test/ares-test-parse-soa-any.cc b/contrib/libs/c-ares/test/ares-test-parse-soa-any.cc
index 804c6a0060..700073c5c8 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-soa-any.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-soa-any.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseSoaAnyReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_any))\
+ .add_question(new DNSQuestion("example.com", T_ANY))\
.add_answer(new DNSARR("example.com", 0x01020304, {2,3,4,5}))
.add_answer(new DNSMxRR("example.com", 100, 100, "mx1.example.com"))
.add_answer(new DNSMxRR("example.com", 100, 200, "mx2.example.com"))
@@ -35,7 +35,7 @@ TEST_F(LibraryTest, ParseSoaAnyReplyOK) {
TEST_F(LibraryTest, ParseSoaAnyReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_any))
+ .add_question(new DNSQuestion("example.com", T_ANY))
.add_answer(new DNSSoaRR("example.com", 100,
"soa1.example.com", "fred.example.com",
1, 2, 3, 4, 5));
@@ -46,24 +46,24 @@ TEST_F(LibraryTest, ParseSoaAnyReplyErrors) {
pkt.questions_.clear();
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_soa_reply(data.data(), data.size(), &soa));
- pkt.add_question(new DNSQuestion("example.com", ns_t_any));
+ pkt.add_question(new DNSQuestion("example.com", T_ANY));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_any));
+ pkt.add_question(new DNSQuestion("Axample.com", T_ANY));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_soa_reply(data.data(), data.size(), &soa));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_any));
+ pkt.add_question(new DNSQuestion("example.com", T_ANY));
#endif
// Two questions
- pkt.add_question(new DNSQuestion("example.com", ns_t_any));
+ pkt.add_question(new DNSQuestion("example.com", T_ANY));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_soa_reply(data.data(), data.size(), &soa));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_any));
+ pkt.add_question(new DNSQuestion("example.com", T_ANY));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -93,7 +93,7 @@ TEST_F(LibraryTest, ParseSoaAnyReplyErrors) {
TEST_F(LibraryTest, ParseSoaAnyReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_any))
+ .add_question(new DNSQuestion("example.com", T_ANY))
.add_answer(new DNSSoaRR("example.com", 100,
"soa1.example.com", "fred.example.com",
1, 2, 3, 4, 5));
diff --git a/contrib/libs/c-ares/test/ares-test-parse-soa.cc b/contrib/libs/c-ares/test/ares-test-parse-soa.cc
index c0ffaaed50..22a78e5f46 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-soa.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-soa.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseSoaReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_soa))
+ .add_question(new DNSQuestion("example.com", T_SOA))
.add_answer(new DNSSoaRR("example.com", 100,
"soa1.example.com", "fred.example.com",
1, 2, 3, 4, 5));
@@ -32,7 +32,7 @@ TEST_F(LibraryTest, ParseSoaReplyOK) {
TEST_F(LibraryTest, ParseSoaReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_soa))
+ .add_question(new DNSQuestion("example.com", T_SOA))
.add_answer(new DNSSoaRR("example.com", 100,
"soa1.example.com", "fred.example.com",
1, 2, 3, 4, 5));
@@ -43,24 +43,24 @@ TEST_F(LibraryTest, ParseSoaReplyErrors) {
pkt.questions_.clear();
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_soa_reply(data.data(), data.size(), &soa));
- pkt.add_question(new DNSQuestion("example.com", ns_t_soa));
+ pkt.add_question(new DNSQuestion("example.com", T_SOA));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_soa));
+ pkt.add_question(new DNSQuestion("Axample.com", T_SOA));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_soa_reply(data.data(), data.size(), &soa));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_soa));
+ pkt.add_question(new DNSQuestion("example.com", T_SOA));
#endif
// Two questions
- pkt.add_question(new DNSQuestion("example.com", ns_t_soa));
+ pkt.add_question(new DNSQuestion("example.com", T_SOA));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_soa_reply(data.data(), data.size(), &soa));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_soa));
+ pkt.add_question(new DNSQuestion("example.com", T_SOA));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -90,7 +90,7 @@ TEST_F(LibraryTest, ParseSoaReplyErrors) {
TEST_F(LibraryTest, ParseSoaReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_soa))
+ .add_question(new DNSQuestion("example.com", T_SOA))
.add_answer(new DNSSoaRR("example.com", 100,
"soa1.example.com", "fred.example.com",
1, 2, 3, 4, 5));
diff --git a/contrib/libs/c-ares/test/ares-test-parse-srv.cc b/contrib/libs/c-ares/test/ares-test-parse-srv.cc
index cc651d6d4e..b004759801 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-srv.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-srv.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseSrvReplyOK) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_srv))
+ .add_question(new DNSQuestion("example.com", T_SRV))
.add_answer(new DNSSrvRR("example.com", 100, 10, 20, 30, "srv.example.com"))
.add_answer(new DNSSrvRR("example.com", 100, 11, 21, 31, "srv2.example.com"));
std::vector<byte> data = pkt.data();
@@ -38,7 +38,7 @@ TEST_F(LibraryTest, ParseSrvReplyOK) {
TEST_F(LibraryTest, ParseSrvReplySingle) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.abc.def.com", ns_t_srv))
+ .add_question(new DNSQuestion("example.abc.def.com", T_SRV))
.add_answer(new DNSSrvRR("example.abc.def.com", 180, 0, 10, 8160, "example.abc.def.com"))
.add_auth(new DNSNsRR("abc.def.com", 44, "else1.where.com"))
.add_auth(new DNSNsRR("abc.def.com", 44, "else2.where.com"))
@@ -96,7 +96,7 @@ TEST_F(LibraryTest, ParseSrvReplyMalformed) {
TEST_F(LibraryTest, ParseSrvReplyMultiple) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_ra().set_rd()
- .add_question(new DNSQuestion("srv.example.com", ns_t_srv))
+ .add_question(new DNSQuestion("srv.example.com", T_SRV))
.add_answer(new DNSSrvRR("srv.example.com", 300, 0, 5, 6789, "a1.srv.example.com"))
.add_answer(new DNSSrvRR("srv.example.com", 300, 0, 5, 4567, "a2.srv.example.com"))
.add_answer(new DNSSrvRR("srv.example.com", 300, 0, 5, 5678, "a3.srv.example.com"))
@@ -142,7 +142,7 @@ TEST_F(LibraryTest, ParseSrvReplyMultiple) {
TEST_F(LibraryTest, ParseSrvReplyCname) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.abc.def.com", ns_t_srv))
+ .add_question(new DNSQuestion("example.abc.def.com", T_SRV))
.add_answer(new DNSCnameRR("example.abc.def.com", 300, "cname.abc.def.com"))
.add_answer(new DNSSrvRR("cname.abc.def.com", 300, 0, 10, 1234, "srv.abc.def.com"))
.add_auth(new DNSNsRR("abc.def.com", 44, "else1.where.com"))
@@ -170,7 +170,7 @@ TEST_F(LibraryTest, ParseSrvReplyCname) {
TEST_F(LibraryTest, ParseSrvReplyCnameMultiple) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_ra().set_rd()
- .add_question(new DNSQuestion("query.example.com", ns_t_srv))
+ .add_question(new DNSQuestion("query.example.com", T_SRV))
.add_answer(new DNSCnameRR("query.example.com", 300, "srv.example.com"))
.add_answer(new DNSSrvRR("srv.example.com", 300, 0, 5, 6789, "a1.srv.example.com"))
.add_answer(new DNSSrvRR("srv.example.com", 300, 0, 5, 4567, "a2.srv.example.com"))
@@ -217,7 +217,7 @@ TEST_F(LibraryTest, ParseSrvReplyCnameMultiple) {
TEST_F(LibraryTest, ParseSrvReplyErrors) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.abc.def.com", ns_t_srv))
+ .add_question(new DNSQuestion("example.abc.def.com", T_SRV))
.add_answer(new DNSSrvRR("example.abc.def.com", 180, 0, 10, 8160, "example.abc.def.com"));
std::vector<byte> data;
struct ares_srv_reply* srv = nullptr;
@@ -226,24 +226,24 @@ TEST_F(LibraryTest, ParseSrvReplyErrors) {
pkt.questions_.clear();
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_srv_reply(data.data(), data.size(), &srv));
- pkt.add_question(new DNSQuestion("example.abc.def.com", ns_t_srv));
+ pkt.add_question(new DNSQuestion("example.abc.def.com", T_SRV));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_srv));
+ pkt.add_question(new DNSQuestion("Axample.com", T_SRV));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_srv_reply(data.data(), data.size(), &srv));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_srv));
+ pkt.add_question(new DNSQuestion("example.com", T_SRV));
#endif
// Two questions.
- pkt.add_question(new DNSQuestion("example.abc.def.com", ns_t_srv));
+ pkt.add_question(new DNSQuestion("example.abc.def.com", T_SRV));
data = pkt.data();
EXPECT_EQ(ARES_EBADRESP, ares_parse_srv_reply(data.data(), data.size(), &srv));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", ns_t_ptr));
+ pkt.add_question(new DNSQuestion("64.48.32.16.in-addr.arpa", T_PTR));
// Wrong sort of answer.
pkt.answers_.clear();
@@ -271,7 +271,7 @@ TEST_F(LibraryTest, ParseSrvReplyErrors) {
TEST_F(LibraryTest, ParseSrvReplyAllocFail) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.abc.def.com", ns_t_srv))
+ .add_question(new DNSQuestion("example.abc.def.com", T_SRV))
.add_answer(new DNSCnameRR("example.com", 300, "c.example.com"))
.add_answer(new DNSSrvRR("example.abc.def.com", 180, 0, 10, 8160, "example.abc.def.com"));
std::vector<byte> data = pkt.data();
diff --git a/contrib/libs/c-ares/test/ares-test-parse-txt.cc b/contrib/libs/c-ares/test/ares-test-parse-txt.cc
index 8aaaaa3b47..b33fb2de0c 100644
--- a/contrib/libs/c-ares/test/ares-test-parse-txt.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse-txt.cc
@@ -13,7 +13,7 @@ TEST_F(LibraryTest, ParseTxtReplyOK) {
std::string expected2a = "txt2a";
std::string expected2b("ABC\0ABC", 7);
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSTxtRR("example.com", 100, {expected1}))
.add_answer(new DNSTxtRR("example.com", 100, {expected2a, expected2b}));
std::vector<byte> data = pkt.data();
@@ -44,7 +44,7 @@ TEST_F(LibraryTest, ParseTxtExtReplyOK) {
std::string expected2a = "txt2a";
std::string expected2b("ABC\0ABC", 7);
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSTxtRR("example.com", 100, {expected1}))
.add_answer(new DNSTxtRR("example.com", 100, {expected2a, expected2b}));
std::vector<byte> data = pkt.data();
@@ -190,7 +190,7 @@ TEST_F(LibraryTest, ParseTxtReplyErrors) {
std::string expected2a = "txt2a";
std::string expected2b = "txt2b";
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSTxtRR("example.com", 100, {expected1}))
.add_answer(new DNSTxtRR("example.com", 100, {expected1}))
.add_answer(new DNSTxtRR("example.com", 100, {expected2a, expected2b}));
@@ -203,26 +203,26 @@ TEST_F(LibraryTest, ParseTxtReplyErrors) {
txt = nullptr;
EXPECT_EQ(ARES_EBADRESP, ares_parse_txt_reply(data.data(), data.size(), &txt));
EXPECT_EQ(nullptr, txt);
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
#ifdef DISABLED
// Question != answer
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("Axample.com", ns_t_txt));
+ pkt.add_question(new DNSQuestion("Axample.com", T_TXT));
data = pkt.data();
EXPECT_EQ(ARES_ENODATA, ares_parse_txt_reply(data.data(), data.size(), &txt));
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_txt));
+ pkt.add_question(new DNSQuestion("example.com", T_TXT));
#endif
// Two questions.
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
data = pkt.data();
txt = nullptr;
EXPECT_EQ(ARES_EBADRESP, ares_parse_txt_reply(data.data(), data.size(), &txt));
EXPECT_EQ(nullptr, txt);
pkt.questions_.clear();
- pkt.add_question(new DNSQuestion("example.com", ns_t_mx));
+ pkt.add_question(new DNSQuestion("example.com", T_MX));
// No answer.
pkt.answers_.clear();
@@ -246,7 +246,7 @@ TEST_F(LibraryTest, ParseTxtReplyAllocFail) {
std::string expected2a = "txt2a";
std::string expected2b = "txt2b";
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com", ns_t_mx))
+ .add_question(new DNSQuestion("example.com", T_MX))
.add_answer(new DNSCnameRR("example.com", 300, "c.example.com"))
.add_answer(new DNSTxtRR("c.example.com", 100, {expected1}))
.add_answer(new DNSTxtRR("c.example.com", 100, {expected1}))
diff --git a/contrib/libs/c-ares/test/ares-test-parse.cc b/contrib/libs/c-ares/test/ares-test-parse.cc
index 4c54fc9902..87ab0bd25f 100644
--- a/contrib/libs/c-ares/test/ares-test-parse.cc
+++ b/contrib/libs/c-ares/test/ares-test-parse.cc
@@ -10,7 +10,7 @@ namespace test {
TEST_F(LibraryTest, ParseRootName) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion(".", ns_t_a))
+ .add_question(new DNSQuestion(".", T_A))
.add_answer(new DNSARR(".", 100, {0x02, 0x03, 0x04, 0x05}));
std::vector<byte> data = pkt.data();
@@ -60,6 +60,8 @@ TEST_F(LibraryTest, ParseIndirectRootName) {
ares_free_hostent(host);
}
+
+#if 0 /* We are validating hostnames now, its not clear how this would ever be valid */
TEST_F(LibraryTest, ParseEscapedName) {
std::vector<byte> data = {
0x12, 0x34, // qid
@@ -105,6 +107,7 @@ TEST_F(LibraryTest, ParseEscapedName) {
EXPECT_EQ('c', hent.name_[6]);
ares_free_hostent(host);
}
+#endif
TEST_F(LibraryTest, ParsePartialCompressedName) {
std::vector<byte> data = {
diff --git a/contrib/libs/c-ares/test/ares-test.cc b/contrib/libs/c-ares/test/ares-test.cc
index ec4b460549..0c0e6bc5d0 100644
--- a/contrib/libs/c-ares/test/ares-test.cc
+++ b/contrib/libs/c-ares/test/ares-test.cc
@@ -1,9 +1,11 @@
+#include "ares_setup.h"
+#include "ares.h"
+#include "ares_nameser.h"
#include "ares-test.h"
#include "ares-test-ai.h"
#include "dns-proto.h"
// Include ares internal files for DNS protocol details
-#include "nameser.h"
#include "ares_dns.h"
#ifdef HAVE_NETDB_H
@@ -30,7 +32,8 @@ namespace ares {
namespace test {
bool verbose = false;
-int mock_port = 5300;
+static constexpr int dynamic_port = 0;
+int mock_port = dynamic_port;
const std::vector<int> both_families = {AF_INET, AF_INET6};
const std::vector<int> ipv4_family = {AF_INET};
@@ -134,7 +137,7 @@ bool LibraryTest::ShouldAllocFail(size_t size) {
// static
void* LibraryTest::amalloc(size_t size) {
- if (ShouldAllocFail(size)) {
+ if (ShouldAllocFail(size) || size == 0) {
if (verbose) std::cerr << "Failing malloc(" << size << ") request" << std::endl;
return nullptr;
} else {
@@ -169,8 +172,8 @@ void DefaultChannelModeTest::Process() {
ProcessWork(channel_, NoExtraFDs, nullptr);
}
-MockServer::MockServer(int family, int port, int tcpport)
- : udpport_(port), tcpport_(tcpport ? tcpport : udpport_), qid_(-1) {
+MockServer::MockServer(int family, int port)
+ : udpport_(port), tcpport_(port), qid_(-1) {
// Create a TCP socket to receive data on.
tcpfd_ = socket(family, SOCK_STREAM, 0);
EXPECT_NE(-1, tcpfd_);
@@ -197,6 +200,21 @@ MockServer::MockServer(int family, int port, int tcpport)
addr.sin_port = htons(udpport_);
int udprc = bind(udpfd_, (struct sockaddr*)&addr, sizeof(addr));
EXPECT_EQ(0, udprc) << "Failed to bind AF_INET to UDP port " << udpport_;
+ // retrieve system-assigned port
+ if (udpport_ == dynamic_port) {
+ ares_socklen_t len = sizeof(addr);
+ auto result = getsockname(udpfd_, (struct sockaddr*)&addr, &len);
+ EXPECT_EQ(0, result);
+ udpport_ = ntohs(addr.sin_port);
+ EXPECT_NE(dynamic_port, udpport_);
+ }
+ if (tcpport_ == dynamic_port) {
+ ares_socklen_t len = sizeof(addr);
+ auto result = getsockname(tcpfd_, (struct sockaddr*)&addr, &len);
+ EXPECT_EQ(0, result);
+ tcpport_ = ntohs(addr.sin_port);
+ EXPECT_NE(dynamic_port, tcpport_);
+ }
} else {
EXPECT_EQ(AF_INET6, family);
struct sockaddr_in6 addr;
@@ -209,6 +227,21 @@ MockServer::MockServer(int family, int port, int tcpport)
addr.sin6_port = htons(udpport_);
int udprc = bind(udpfd_, (struct sockaddr*)&addr, sizeof(addr));
EXPECT_EQ(0, udprc) << "Failed to bind AF_INET6 to UDP port " << udpport_;
+ // retrieve system-assigned port
+ if (udpport_ == dynamic_port) {
+ ares_socklen_t len = sizeof(addr);
+ auto result = getsockname(udpfd_, (struct sockaddr*)&addr, &len);
+ EXPECT_EQ(0, result);
+ udpport_ = ntohs(addr.sin6_port);
+ EXPECT_NE(dynamic_port, udpport_);
+ }
+ if (tcpport_ == dynamic_port) {
+ ares_socklen_t len = sizeof(addr);
+ auto result = getsockname(tcpfd_, (struct sockaddr*)&addr, &len);
+ EXPECT_EQ(0, result);
+ tcpport_ = ntohs(addr.sin6_port);
+ EXPECT_NE(dynamic_port, tcpport_);
+ }
}
if (verbose) std::cerr << "Configured "
<< (family == AF_INET ? "IPv4" : "IPv6")
@@ -281,7 +314,7 @@ void MockServer::ProcessFD(int fd) {
std::cerr << "Not a request" << std::endl;
return;
}
- if (DNS_HEADER_OPCODE(data) != ns_o_query) {
+ if (DNS_HEADER_OPCODE(data) != O_QUERY) {
std::cerr << "Not a query (opcode " << DNS_HEADER_OPCODE(data)
<< ")" << std::endl;
return;
@@ -311,7 +344,7 @@ void MockServer::ProcessFD(int fd) {
<< " bytes after name)" << std::endl;
return;
}
- if (DNS_QUESTION_CLASS(question) != ns_c_in) {
+ if (DNS_QUESTION_CLASS(question) != C_IN) {
std::cerr << "Unexpected question class (" << DNS_QUESTION_CLASS(question)
<< ")" << std::endl;
return;
@@ -381,7 +414,8 @@ MockChannelOptsTest::NiceMockServers MockChannelOptsTest::BuildServers(int count
NiceMockServers servers;
assert(count > 0);
for (int ii = 0; ii < count; ii++) {
- std::unique_ptr<NiceMockServer> server(new NiceMockServer(family, base_port + ii));
+ int port = base_port == dynamic_port ? dynamic_port : base_port + ii;
+ std::unique_ptr<NiceMockServer> server(new NiceMockServer(family, port));
servers.push_back(std::move(server));
}
return servers;
@@ -403,9 +437,9 @@ MockChannelOptsTest::MockChannelOptsTest(int count,
}
// Point the library at the first mock server by default (overridden below).
- opts.udp_port = mock_port;
+ opts.udp_port = server_.udpport();
optmask |= ARES_OPT_UDP_PORT;
- opts.tcp_port = mock_port;
+ opts.tcp_port = server_.tcpport();
optmask |= ARES_OPT_TCP_PORT;
// If not already overridden, set short-ish timeouts.
diff --git a/contrib/libs/c-ares/test/ares-test.h b/contrib/libs/c-ares/test/ares-test.h
index fd3bc31c27..06e9759948 100644
--- a/contrib/libs/c-ares/test/ares-test.h
+++ b/contrib/libs/c-ares/test/ares-test.h
@@ -2,13 +2,13 @@
#ifndef ARES_TEST_H
#define ARES_TEST_H
-#include "dns-proto.h"
-// Include ares internal file for DNS protocol constants
-#include "nameser.h"
-
#include "ares_setup.h"
#include "ares.h"
+#include "dns-proto.h"
+// Include ares internal file for DNS protocol constants
+#include "ares_nameser.h"
+
#include "gtest/gtest.h"
#include "gmock/gmock.h"
@@ -133,7 +133,7 @@ class DefaultChannelModeTest
// Mock DNS server to allow responses to be scripted by tests.
class MockServer {
public:
- MockServer(int family, int port, int tcpport = 0);
+ MockServer(int family, int port);
~MockServer();
// Mock method indicating the processing of a particular <name, RRtype>
diff --git a/contrib/libs/c-ares/test/dns-proto-test.cc b/contrib/libs/c-ares/test/dns-proto-test.cc
index 0c36a0c922..3dadeeee1c 100644
--- a/contrib/libs/c-ares/test/dns-proto-test.cc
+++ b/contrib/libs/c-ares/test/dns-proto-test.cc
@@ -9,8 +9,8 @@ namespace test {
TEST(DNSProto, EncodeQuestions) {
DNSPacket pkt;
pkt.set_qid(0x1234).set_response().set_aa()
- .add_question(new DNSQuestion("example.com.", ns_t_a))
- .add_question(new DNSQuestion("www.example.com", ns_t_aaaa, ns_c_chaos));
+ .add_question(new DNSQuestion("example.com.", T_A))
+ .add_question(new DNSQuestion("www.example.com", T_AAAA, C_CHAOS));
std::vector<byte> data = {
0x12, 0x34, // qid
@@ -42,7 +42,7 @@ TEST(DNSProto, EncodeSingleNameAnswers) {
pkt.qid_ = 0x1234;
pkt.response_ = true;
pkt.aa_ = true;
- pkt.opcode_ = ns_o_query;
+ pkt.opcode_ = O_QUERY;
pkt.add_answer(new DNSCnameRR("example.com", 0x01020304, "other.com."));
pkt.add_auth(new DNSPtrRR("www.example.com", 0x01020304, "www.other.com"));
@@ -87,7 +87,7 @@ TEST(DNSProto, EncodeAddressAnswers) {
pkt.qid_ = 0x1234;
pkt.response_ = true;
pkt.aa_ = true;
- pkt.opcode_ = ns_o_query;
+ pkt.opcode_ = O_QUERY;
std::vector<byte> addrv4 = {0x02, 0x03, 0x04, 0x05};
pkt.add_answer(new DNSARR("example.com", 0x01020304, addrv4));
byte addrv6[16] = {0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
diff --git a/contrib/libs/c-ares/test/dns-proto.cc b/contrib/libs/c-ares/test/dns-proto.cc
index d2fa8b15be..63cf374338 100644
--- a/contrib/libs/c-ares/test/dns-proto.cc
+++ b/contrib/libs/c-ares/test/dns-proto.cc
@@ -1,9 +1,9 @@
-#include "dns-proto.h"
// Include ares internal file for DNS protocol details
#include "ares_setup.h"
#include "ares.h"
#include "ares_dns.h"
+#include "dns-proto.h"
#include <stdio.h>
#include <stdlib.h>
@@ -63,93 +63,93 @@ std::string StatusToString(int status) {
std::string RcodeToString(int rcode) {
switch (rcode) {
- case ns_r_noerror: return "NOERROR";
- case ns_r_formerr: return "FORMERR";
- case ns_r_servfail: return "SERVFAIL";
- case ns_r_nxdomain: return "NXDOMAIN";
- case ns_r_notimpl: return "NOTIMPL";
- case ns_r_refused: return "REFUSED";
- case ns_r_yxdomain: return "YXDOMAIN";
- case ns_r_yxrrset: return "YXRRSET";
- case ns_r_nxrrset: return "NXRRSET";
- case ns_r_notauth: return "NOTAUTH";
- case ns_r_notzone: return "NOTZONE";
- case ns_r_badsig: return "BADSIG";
- case ns_r_badkey: return "BADKEY";
- case ns_r_badtime: return "BADTIME";
+ case NOERROR: return "NOERROR";
+ case FORMERR: return "FORMERR";
+ case SERVFAIL: return "SERVFAIL";
+ case NXDOMAIN: return "NXDOMAIN";
+ case NOTIMP: return "NOTIMP";
+ case REFUSED: return "REFUSED";
+ case YXDOMAIN: return "YXDOMAIN";
+ case YXRRSET: return "YXRRSET";
+ case NXRRSET: return "NXRRSET";
+ case NOTAUTH: return "NOTAUTH";
+ case NOTZONE: return "NOTZONE";
+ case TSIG_BADSIG: return "BADSIG";
+ case TSIG_BADKEY: return "BADKEY";
+ case TSIG_BADTIME: return "BADTIME";
default: return "UNKNOWN";
}
}
std::string RRTypeToString(int rrtype) {
switch (rrtype) {
- case ns_t_a: return "A";
- case ns_t_ns: return "NS";
- case ns_t_md: return "MD";
- case ns_t_mf: return "MF";
- case ns_t_cname: return "CNAME";
- case ns_t_soa: return "SOA";
- case ns_t_mb: return "MB";
- case ns_t_mg: return "MG";
- case ns_t_mr: return "MR";
- case ns_t_null: return "NULL";
- case ns_t_wks: return "WKS";
- case ns_t_ptr: return "PTR";
- case ns_t_hinfo: return "HINFO";
- case ns_t_minfo: return "MINFO";
- case ns_t_mx: return "MX";
- case ns_t_txt: return "TXT";
- case ns_t_rp: return "RP";
- case ns_t_afsdb: return "AFSDB";
- case ns_t_x25: return "X25";
- case ns_t_isdn: return "ISDN";
- case ns_t_rt: return "RT";
- case ns_t_nsap: return "NSAP";
- case ns_t_nsap_ptr: return "NSAP_PTR";
- case ns_t_sig: return "SIG";
- case ns_t_key: return "KEY";
- case ns_t_px: return "PX";
- case ns_t_gpos: return "GPOS";
- case ns_t_aaaa: return "AAAA";
- case ns_t_loc: return "LOC";
- case ns_t_nxt: return "NXT";
- case ns_t_eid: return "EID";
- case ns_t_nimloc: return "NIMLOC";
- case ns_t_srv: return "SRV";
- case ns_t_atma: return "ATMA";
- case ns_t_naptr: return "NAPTR";
- case ns_t_kx: return "KX";
- case ns_t_cert: return "CERT";
- case ns_t_a6: return "A6";
- case ns_t_dname: return "DNAME";
- case ns_t_sink: return "SINK";
- case ns_t_opt: return "OPT";
- case ns_t_apl: return "APL";
- case ns_t_ds: return "DS";
- case ns_t_sshfp: return "SSHFP";
- case ns_t_rrsig: return "RRSIG";
- case ns_t_nsec: return "NSEC";
- case ns_t_dnskey: return "DNSKEY";
- case ns_t_tkey: return "TKEY";
- case ns_t_tsig: return "TSIG";
- case ns_t_ixfr: return "IXFR";
- case ns_t_axfr: return "AXFR";
- case ns_t_mailb: return "MAILB";
- case ns_t_maila: return "MAILA";
- case ns_t_any: return "ANY";
- case ns_t_zxfr: return "ZXFR";
- case ns_t_max: return "MAX";
+ case T_A: return "A";
+ case T_NS: return "NS";
+ case T_MD: return "MD";
+ case T_MF: return "MF";
+ case T_CNAME: return "CNAME";
+ case T_SOA: return "SOA";
+ case T_MB: return "MB";
+ case T_MG: return "MG";
+ case T_MR: return "MR";
+ case T_NULL: return "NULL";
+ case T_WKS: return "WKS";
+ case T_PTR: return "PTR";
+ case T_HINFO: return "HINFO";
+ case T_MINFO: return "MINFO";
+ case T_MX: return "MX";
+ case T_TXT: return "TXT";
+ case T_RP: return "RP";
+ case T_AFSDB: return "AFSDB";
+ case T_X25: return "X25";
+ case T_ISDN: return "ISDN";
+ case T_RT: return "RT";
+ case T_NSAP: return "NSAP";
+ case T_NSAP_PTR: return "NSAP_PTR";
+ case T_SIG: return "SIG";
+ case T_KEY: return "KEY";
+ case T_PX: return "PX";
+ case T_GPOS: return "GPOS";
+ case T_AAAA: return "AAAA";
+ case T_LOC: return "LOC";
+ case T_NXT: return "NXT";
+ case T_EID: return "EID";
+ case T_NIMLOC: return "NIMLOC";
+ case T_SRV: return "SRV";
+ case T_ATMA: return "ATMA";
+ case T_NAPTR: return "NAPTR";
+ case T_KX: return "KX";
+ case T_CERT: return "CERT";
+ case T_A6: return "A6";
+ case T_DNAME: return "DNAME";
+ case T_SINK: return "SINK";
+ case T_OPT: return "OPT";
+ case T_APL: return "APL";
+ case T_DS: return "DS";
+ case T_SSHFP: return "SSHFP";
+ case T_RRSIG: return "RRSIG";
+ case T_NSEC: return "NSEC";
+ case T_DNSKEY: return "DNSKEY";
+ case T_TKEY: return "TKEY";
+ case T_TSIG: return "TSIG";
+ case T_IXFR: return "IXFR";
+ case T_AXFR: return "AXFR";
+ case T_MAILB: return "MAILB";
+ case T_MAILA: return "MAILA";
+ case T_ANY: return "ANY";
+ case T_ZXFR: return "ZXFR";
+ case T_MAX: return "MAX";
default: return "UNKNOWN";
}
}
std::string ClassToString(int qclass) {
switch (qclass) {
- case ns_c_in: return "IN";
- case ns_c_chaos: return "CHAOS";
- case ns_c_hs: return "HESIOD";
- case ns_c_none: return "NONE";
- case ns_c_any: return "ANY";
+ case C_IN: return "IN";
+ case C_CHAOS: return "CHAOS";
+ case C_HS: return "HESIOD";
+ case C_NONE: return "NONE";
+ case C_ANY: return "ANY";
default: return "UNKNOWN";
}
}
@@ -188,11 +188,11 @@ std::string PacketToString(const std::vector<byte>& packet) {
}
ss << ((DNS_HEADER_QR(data) == 0) ? "REQ " : "RSP ");
switch (DNS_HEADER_OPCODE(data)) {
- case ns_o_query: ss << "QRY "; break;
- case ns_o_iquery: ss << "IQRY "; break;
- case ns_o_status: ss << "STATUS "; break;
- case ns_o_notify: ss << "NOTIFY "; break;
- case ns_o_update: ss << "UPDATE "; break;
+ case O_QUERY: ss << "QRY "; break;
+ case O_IQUERY: ss << "IQRY "; break;
+ case O_STATUS: ss << "STATUS "; break;
+ case O_NOTIFY: ss << "NOTIFY "; break;
+ case O_UPDATE: ss << "UPDATE "; break;
default: ss << "UNKNOWN(" << DNS_HEADER_OPCODE(data) << ") "; break;
}
if (DNS_HEADER_AA(data)) ss << "AA ";
@@ -292,7 +292,7 @@ std::string RRToString(const std::vector<byte>& packet,
return ss.str();
}
int rrtype = DNS_RR_TYPE(*data);
- if (rrtype == ns_t_opt) {
+ if (rrtype == T_OPT) {
ss << "MAXUDP=" << DNS_RR_CLASS(*data) << " ";
ss << RRTypeToString(rrtype) << " ";
ss << "RCODE2=" << DNS_RR_TTL(*data);
@@ -309,11 +309,11 @@ std::string RRToString(const std::vector<byte>& packet,
ss << "(RR too long at " << rdatalen << ", len left " << *len << ")";
} else {
switch (rrtype) {
- case ns_t_a:
- case ns_t_aaaa:
+ case T_A:
+ case T_AAAA:
ss << " " << AddressToString(*data, rdatalen);
break;
- case ns_t_txt: {
+ case T_TXT: {
const byte* p = *data;
while (p < (*data + rdatalen)) {
int len = *p++;
@@ -327,9 +327,9 @@ std::string RRToString(const std::vector<byte>& packet,
}
break;
}
- case ns_t_cname:
- case ns_t_ns:
- case ns_t_ptr: {
+ case T_CNAME:
+ case T_NS:
+ case T_PTR: {
int rc = ares_expand_name(*data, packet.data(), packet.size(), &name, &enclen);
if (rc != ARES_SUCCESS) {
ss << "(error from ares_expand_name)";
@@ -339,7 +339,7 @@ std::string RRToString(const std::vector<byte>& packet,
ares_free_string(name);
break;
}
- case ns_t_mx:
+ case T_MX:
if (rdatalen > 2) {
int rc = ares_expand_name(*data + 2, packet.data(), packet.size(), &name, &enclen);
if (rc != ARES_SUCCESS) {
@@ -352,7 +352,7 @@ std::string RRToString(const std::vector<byte>& packet,
ss << "(RR too short)";
}
break;
- case ns_t_srv: {
+ case T_SRV: {
if (rdatalen > 6) {
const byte* p = *data;
unsigned long prio = DNS__16BIT(p);
@@ -371,7 +371,7 @@ std::string RRToString(const std::vector<byte>& packet,
}
break;
}
- case ns_t_soa: {
+ case T_SOA: {
const byte* p = *data;
int rc = ares_expand_name(p, packet.data(), packet.size(), &name, &enclen);
if (rc != ARES_SUCCESS) {
@@ -401,7 +401,7 @@ std::string RRToString(const std::vector<byte>& packet,
}
break;
}
- case ns_t_naptr: {
+ case T_NAPTR: {
if (rdatalen > 7) {
const byte* p = *data;
unsigned long order = DNS__16BIT(p);
diff --git a/contrib/libs/c-ares/test/dns-proto.h b/contrib/libs/c-ares/test/dns-proto.h
index 346711dfe9..854c99a9eb 100644
--- a/contrib/libs/c-ares/test/dns-proto.h
+++ b/contrib/libs/c-ares/test/dns-proto.h
@@ -3,8 +3,10 @@
#define DNS_PROTO_H
// Utilities for processing DNS packet contents
+#include "ares_setup.h"
+#include "ares.h"
// Include ares internal file for DNS protocol constants
-#include "nameser.h"
+#include "ares_nameser.h"
#include <memory>
#include <string>
@@ -41,21 +43,21 @@ void PushInt16(std::vector<byte>* data, int value);
std::vector<byte> EncodeString(const std::string& name);
struct DNSQuestion {
- DNSQuestion(const std::string& name, ns_type rrtype, ns_class qclass)
+ DNSQuestion(const std::string& name, int rrtype, int qclass)
: name_(name), rrtype_(rrtype), qclass_(qclass) {}
- DNSQuestion(const std::string& name, ns_type rrtype)
- : name_(name), rrtype_(rrtype), qclass_(ns_c_in) {}
+ DNSQuestion(const std::string& name, int rrtype)
+ : name_(name), rrtype_(rrtype), qclass_(C_IN) {}
virtual ~DNSQuestion() {}
virtual std::vector<byte> data() const;
std::string name_;
- ns_type rrtype_;
- ns_class qclass_;
+ int rrtype_;
+ int qclass_;
};
struct DNSRR : public DNSQuestion {
- DNSRR(const std::string& name, ns_type rrtype, ns_class qclass, int ttl)
+ DNSRR(const std::string& name, int rrtype, int qclass, int ttl)
: DNSQuestion(name, rrtype, qclass), ttl_(ttl) {}
- DNSRR(const std::string& name, ns_type rrtype, int ttl)
+ DNSRR(const std::string& name, int rrtype, int ttl)
: DNSQuestion(name, rrtype), ttl_(ttl) {}
virtual ~DNSRR() {}
virtual std::vector<byte> data() const = 0;
@@ -63,10 +65,10 @@ struct DNSRR : public DNSQuestion {
};
struct DNSAddressRR : public DNSRR {
- DNSAddressRR(const std::string& name, ns_type rrtype, int ttl,
+ DNSAddressRR(const std::string& name, int rrtype, int ttl,
const byte* addr, int addrlen)
: DNSRR(name, rrtype, ttl), addr_(addr, addr + addrlen) {}
- DNSAddressRR(const std::string& name, ns_type rrtype, int ttl,
+ DNSAddressRR(const std::string& name, int rrtype, int ttl,
const std::vector<byte>& addr)
: DNSRR(name, rrtype, ttl), addr_(addr) {}
virtual std::vector<byte> data() const;
@@ -75,20 +77,20 @@ struct DNSAddressRR : public DNSRR {
struct DNSARR : public DNSAddressRR {
DNSARR(const std::string& name, int ttl, const byte* addr, int addrlen)
- : DNSAddressRR(name, ns_t_a, ttl, addr, addrlen) {}
+ : DNSAddressRR(name, T_A, ttl, addr, addrlen) {}
DNSARR(const std::string& name, int ttl, const std::vector<byte>& addr)
- : DNSAddressRR(name, ns_t_a, ttl, addr) {}
+ : DNSAddressRR(name, T_A, ttl, addr) {}
};
struct DNSAaaaRR : public DNSAddressRR {
DNSAaaaRR(const std::string& name, int ttl, const byte* addr, int addrlen)
- : DNSAddressRR(name, ns_t_aaaa, ttl, addr, addrlen) {}
+ : DNSAddressRR(name, T_AAAA, ttl, addr, addrlen) {}
DNSAaaaRR(const std::string& name, int ttl, const std::vector<byte>& addr)
- : DNSAddressRR(name, ns_t_aaaa, ttl, addr) {}
+ : DNSAddressRR(name, T_AAAA, ttl, addr) {}
};
struct DNSSingleNameRR : public DNSRR {
- DNSSingleNameRR(const std::string& name, ns_type rrtype, int ttl,
+ DNSSingleNameRR(const std::string& name, int rrtype, int ttl,
const std::string& other)
: DNSRR(name, rrtype, ttl), other_(other) {}
virtual std::vector<byte> data() const;
@@ -97,29 +99,29 @@ struct DNSSingleNameRR : public DNSRR {
struct DNSCnameRR : public DNSSingleNameRR {
DNSCnameRR(const std::string& name, int ttl, const std::string& other)
- : DNSSingleNameRR(name, ns_t_cname, ttl, other) {}
+ : DNSSingleNameRR(name, T_CNAME, ttl, other) {}
};
struct DNSNsRR : public DNSSingleNameRR {
DNSNsRR(const std::string& name, int ttl, const std::string& other)
- : DNSSingleNameRR(name, ns_t_ns, ttl, other) {}
+ : DNSSingleNameRR(name, T_NS, ttl, other) {}
};
struct DNSPtrRR : public DNSSingleNameRR {
DNSPtrRR(const std::string& name, int ttl, const std::string& other)
- : DNSSingleNameRR(name, ns_t_ptr, ttl, other) {}
+ : DNSSingleNameRR(name, T_PTR, ttl, other) {}
};
struct DNSTxtRR : public DNSRR {
DNSTxtRR(const std::string& name, int ttl, const std::vector<std::string>& txt)
- : DNSRR(name, ns_t_txt, ttl), txt_(txt) {}
+ : DNSRR(name, T_TXT, ttl), txt_(txt) {}
virtual std::vector<byte> data() const;
std::vector<std::string> txt_;
};
struct DNSMxRR : public DNSRR {
DNSMxRR(const std::string& name, int ttl, int pref, const std::string& other)
- : DNSRR(name, ns_t_mx, ttl), pref_(pref), other_(other) {}
+ : DNSRR(name, T_MX, ttl), pref_(pref), other_(other) {}
virtual std::vector<byte> data() const;
int pref_;
std::string other_;
@@ -128,7 +130,7 @@ struct DNSMxRR : public DNSRR {
struct DNSSrvRR : public DNSRR {
DNSSrvRR(const std::string& name, int ttl,
int prio, int weight, int port, const std::string& target)
- : DNSRR(name, ns_t_srv, ttl), prio_(prio), weight_(weight), port_(port), target_(target) {}
+ : DNSRR(name, T_SRV, ttl), prio_(prio), weight_(weight), port_(port), target_(target) {}
virtual std::vector<byte> data() const;
int prio_;
int weight_;
@@ -140,7 +142,7 @@ struct DNSSoaRR : public DNSRR {
DNSSoaRR(const std::string& name, int ttl,
const std::string& nsname, const std::string& rname,
int serial, int refresh, int retry, int expire, int minimum)
- : DNSRR(name, ns_t_soa, ttl), nsname_(nsname), rname_(rname),
+ : DNSRR(name, T_SOA, ttl), nsname_(nsname), rname_(rname),
serial_(serial), refresh_(refresh), retry_(retry),
expire_(expire), minimum_(minimum) {}
virtual std::vector<byte> data() const;
@@ -160,7 +162,7 @@ struct DNSNaptrRR : public DNSRR {
const std::string& service,
const std::string& regexp,
const std::string& replacement)
- : DNSRR(name, ns_t_naptr, ttl), order_(order), pref_(pref),
+ : DNSRR(name, T_NAPTR, ttl), order_(order), pref_(pref),
flags_(flags), service_(service), regexp_(regexp), replacement_(replacement) {}
virtual std::vector<byte> data() const;
int order_;
@@ -178,16 +180,16 @@ struct DNSOption {
struct DNSOptRR : public DNSRR {
DNSOptRR(int extrcode, int udpsize)
- : DNSRR("", ns_t_opt, static_cast<ns_class>(udpsize), extrcode) {}
+ : DNSRR("", T_OPT, static_cast<int>(udpsize), extrcode) {}
virtual std::vector<byte> data() const;
std::vector<DNSOption> opts_;
};
struct DNSPacket {
DNSPacket()
- : qid_(0), response_(false), opcode_(ns_o_query),
+ : qid_(0), response_(false), opcode_(O_QUERY),
aa_(false), tc_(false), rd_(false), ra_(false),
- z_(false), ad_(false), cd_(false), rcode_(ns_r_noerror) {}
+ z_(false), ad_(false), cd_(false), rcode_(NOERROR) {}
// Convenience functions that take ownership of given pointers.
DNSPacket& add_question(DNSQuestion *q) {
questions_.push_back(std::unique_ptr<DNSQuestion>(q));
@@ -215,14 +217,14 @@ struct DNSPacket {
DNSPacket& set_z(bool v = true) { z_ = v; return *this; }
DNSPacket& set_ad(bool v = true) { ad_ = v; return *this; }
DNSPacket& set_cd(bool v = true) { cd_ = v; return *this; }
- DNSPacket& set_rcode(ns_rcode rcode) { rcode_ = rcode; return *this; }
+ DNSPacket& set_rcode(int rcode) { rcode_ = rcode; return *this; }
// Return the encoded packet.
std::vector<byte> data() const;
int qid_;
bool response_;
- ns_opcode opcode_;
+ int opcode_;
bool aa_;
bool tc_;
bool rd_;
@@ -230,7 +232,7 @@ struct DNSPacket {
bool z_;
bool ad_;
bool cd_;
- ns_rcode rcode_;
+ int rcode_;
std::vector<std::unique_ptr<DNSQuestion>> questions_;
std::vector<std::unique_ptr<DNSRR>> answers_;
std::vector<std::unique_ptr<DNSRR>> auths_;
diff --git a/contrib/libs/c-ares/test/ya.make b/contrib/libs/c-ares/test/ya.make
index ef42eab230..8745fbc2ff 100644
--- a/contrib/libs/c-ares/test/ya.make
+++ b/contrib/libs/c-ares/test/ya.make
@@ -2,7 +2,12 @@
GTEST(arestest)
-OWNER(max42 g:cpp-contrib)
+WITHOUT_LICENSE_TEXTS()
+
+OWNER(
+ max42
+ g:cpp-contrib
+)
LICENSE(MIT)
@@ -17,7 +22,8 @@ PEERDIR(
)
ADDINCL(
- contrib/libs/c-ares
+ contrib/libs/c-ares/include
+ contrib/libs/c-ares/src/lib
contrib/libs/c-ares/test
)
@@ -43,6 +49,7 @@ SRCS(
ares-test-ns.cc
ares-test-parse-a.cc
ares-test-parse-aaaa.cc
+ ares-test-parse-caa.cc
ares-test-parse-mx.cc
ares-test-parse-naptr.cc
ares-test-parse-ns.cc