diff options
| author | shadchin <[email protected]> | 2022-02-17 23:09:13 +0300 | 
|---|---|---|
| committer | shadchin <[email protected]> | 2022-02-17 23:09:13 +0300 | 
| commit | 1e12ad07b2ad2362e06100f7f32e772e628bef66 (patch) | |
| tree | 9981af0beb469cfef0d3d1658040f6bbf4206313 /contrib/libs/c-ares/test | |
| parent | 55c6ad7179b9300375e9a16a3956dc706fcb560b (diff) | |
Update c-ares from 0.16.1 to 0.17.2
MAKEAYAMLHAPPY-12345
ref:6a83ac3af883b2fc963128b7993f0a467b0000cb
Diffstat (limited to 'contrib/libs/c-ares/test')
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 00000000000..98814467842 --- /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 5510163e95b..8107f19d08d 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 6fc28a8f97e..b11b04babc0 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("[email protected]", ns_t_a)); +  pkt.set_qid(0x1234).add_question(new DNSQuestion("[email protected]", 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 d0df867fefd..0de315a57cb 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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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 80e9fc02b09..f4e773cf8fc 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_, ¬hird));    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_, ¬hird));    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_, ¬hird));    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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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(), ¬implrsp)); -  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 7f6a987c134..f8050ac7080 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 1314c837a6b..df565296805 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 00000000000..99903edf715 --- /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, // [email protected] +    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 37324a6d4c0..db8fa89404a 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 3238a1923dc..aa1a2a5029a 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 cd653189692..316492174cd 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 75f74c16f74..e8fcac32248 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 804c6a00606..700073c5c82 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 c0ffaaed50d..22a78e5f46d 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 cc651d6d4ee..b004759801a 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 8aaaaa3b47d..b33fb2de0c9 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 4c54fc99025..87ab0bd25f0 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 ec4b460549b..0c0e6bc5d08 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 fd3bc31c27a..06e97599481 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 0c36a0c922f..3dadeeee1c7 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 d2fa8b15be7..63cf3743388 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 346711dfe94..854c99a9ebb 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 ef42eab2305..8745fbc2ff7 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  | 
