Loading Android.bp +0 −10 Original line number Diff line number Diff line Loading @@ -300,13 +300,6 @@ cc_library_static { min_sdk_version: "29", } filegroup { name: "resolv_rust_test_config_template", srcs: [ "resolv_rust_test_config_template.xml", ], } filegroup { name: "resolv_test_config_template", srcs: [ Loading Loading @@ -366,9 +359,6 @@ rust_test { edition: "2018", test_suites: ["general-tests"], auto_gen_config: true, // Used to enable root permission for the test. // TODO: remove after 'require_root' is supported in rust_test. test_config_template: ":resolv_rust_test_config_template", rustlibs: doh_rust_deps + ["libquiche_static"], min_sdk_version: "29", } Loading DnsProxyListener.cpp +71 −57 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <arpa/inet.h> #include <dirent.h> #include <errno.h> #include <linux/if.h> #include <math.h> #include <net/if.h> Loading @@ -34,6 +33,7 @@ #include <algorithm> #include <vector> #include <android-base/parseint.h> #include <android/multinetwork.h> // ResNsendFlags #include <cutils/misc.h> // FIRST_APPLICATION_UID #include <cutils/multiuser.h> Loading Loading @@ -63,6 +63,8 @@ using aidl::android::net::metrics::INetdEventListener; using aidl::android::net::resolv::aidl::DnsHealthEventParcel; using aidl::android::net::resolv::aidl::IDnsResolverUnsolicitedEventListener; using android::base::ParseInt; using android::base::ParseUint; using std::span; namespace android { Loading Loading @@ -235,23 +237,9 @@ int resNSendToAiError(int err, int rcode) { return EAI_SYSTEM; } template <typename IntegralType> bool simpleStrtoul(const char* input, IntegralType* output, int base = 10) { char* endPtr; errno = 0; auto result = strtoul(input, &endPtr, base); // Check the length in order to ensure there is no "-" sign if (!*input || *endPtr || (endPtr - input) != static_cast<ptrdiff_t>(strlen(input)) || (errno == ERANGE && (result == ULONG_MAX))) { return false; } *output = result; return true; } bool setQueryId(span<uint8_t> msg, uint16_t query_id) { if ((size_t)msg.size() < sizeof(HEADER)) { errno = EINVAL; LOG(ERROR) << __func__ << ": Invalid parameter"; return false; } auto hp = reinterpret_cast<HEADER*>(msg.data()); Loading Loading @@ -703,6 +691,17 @@ static bool evaluate_domain_name(const android_net_context& netcontext, const ch return gResNetdCallbacks.evaluate_domain_name(netcontext, host); } static int HandleArgumentError(SocketClient* cli, int errorcode, std::string strerrormessage, int argc, char** argv) { for (int i = 0; i < argc; i++) { strerrormessage += "argv[" + std::to_string(i) + "]=" + (argv[i] ? argv[i] : "null") + " "; } LOG(WARNING) << strerrormessage; cli->sendMsg(errorcode, strerrormessage.c_str(), false); return -1; } static bool sendBE32(SocketClient* c, uint32_t data) { uint32_t be_data = htonl(data); return c->sendData(&be_data, sizeof(be_data)) == 0; Loading Loading @@ -911,22 +910,31 @@ DnsProxyListener::GetAddrInfoCmd::GetAddrInfoCmd() : FrameworkCommand("getaddrin int DnsProxyListener::GetAddrInfoCmd::runCommand(SocketClient* cli, int argc, char** argv) { logArguments(argc, argv); int ai_flags = 0; int ai_family = 0; int ai_socktype = 0; int ai_protocol = 0; unsigned netId = 0; std::string strErr = "GetAddrInfoCmd::runCommand: "; if (argc != 8) { char* msg = nullptr; asprintf(&msg, "Invalid number of arguments to getaddrinfo: %i", argc); LOG(WARNING) << "GetAddrInfoCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::CommandParameterError, msg, false); free(msg); return -1; strErr = strErr + "invalid number of arguments: " + std::to_string(argc); return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, 0, NULL); } const std::string name = argv[1]; const std::string service = argv[2]; int ai_flags = strtol(argv[3], nullptr, 10); int ai_family = strtol(argv[4], nullptr, 10); int ai_socktype = strtol(argv[5], nullptr, 10); int ai_protocol = strtol(argv[6], nullptr, 10); unsigned netId = strtoul(argv[7], nullptr, 10); if (!ParseInt(argv[3], &ai_flags)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[4], &ai_family)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[5], &ai_socktype)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[6], &ai_protocol)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseUint(argv[7], &netId)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); const bool useLocalNameservers = checkAndClearUseLocalNameserversFlag(&netId); const uid_t uid = cli->getUid(); Loading Loading @@ -967,7 +975,7 @@ int DnsProxyListener::ResNSendCommand::runCommand(SocketClient* cli, int argc, c } unsigned netId; if (!simpleStrtoul(argv[1], &netId)) { if (!ParseUint(argv[1], &netId)) { LOG(WARNING) << "ResNSendCommand::runCommand: resnsend: from UID " << uid << ", invalid netId"; sendBE32(cli, -EINVAL); Loading @@ -975,7 +983,7 @@ int DnsProxyListener::ResNSendCommand::runCommand(SocketClient* cli, int argc, c } uint32_t flags; if (!simpleStrtoul(argv[2], &flags)) { if (!ParseUint(argv[2], &flags)) { LOG(WARNING) << "ResNSendCommand::runCommand: resnsend: from UID " << uid << ", invalid flags"; sendBE32(cli, -EINVAL); Loading Loading @@ -1077,9 +1085,14 @@ void DnsProxyListener::ResNSendHandler::run() { return; } // Restore query id and send answer if (!setQueryId({ansBuf.data(), ansLen}, original_query_id) || !sendLenAndData(mClient, ansLen, ansBuf.data())) { // Restore query id if (!setQueryId({ansBuf.data(), ansLen}, original_query_id)) { LOG(WARNING) << "ResNSendHandler::run: resnsend: failed to restore query id"; return; } // Send answer if (!sendLenAndData(mClient, ansLen, ansBuf.data())) { PLOG(WARNING) << "ResNSendHandler::run: resnsend: failed to send answer to uid " << uid << " pid " << mClient->getPid(); return; Loading Loading @@ -1124,7 +1137,7 @@ int DnsProxyListener::GetDnsNetIdCommand::runCommand(SocketClient* cli, int argc } unsigned netId; if (!simpleStrtoul(argv[1], &netId)) { if (!ParseUint(argv[1], &netId)) { LOG(WARNING) << "GetDnsNetIdCommand::runCommand: getdnsnetid: from UID " << uid << ", invalid netId"; sendCodeAndBe32(cli, ResponseCode::DnsProxyQueryResult, -EINVAL); Loading Loading @@ -1158,20 +1171,22 @@ DnsProxyListener::GetHostByNameCmd::GetHostByNameCmd() : FrameworkCommand("getho int DnsProxyListener::GetHostByNameCmd::runCommand(SocketClient* cli, int argc, char** argv) { logArguments(argc, argv); unsigned netId = 0; int af = 0; std::string strErr = "GetHostByNameCmd::runCommand: "; if (argc != 4) { char* msg = nullptr; asprintf(&msg, "Invalid number of arguments to gethostbyname: %i", argc); LOG(WARNING) << "GetHostByNameCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::CommandParameterError, msg, false); free(msg); return -1; strErr = strErr + "invalid number of arguments: " + std::to_string(argc); return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, 0, NULL); } if (!ParseUint(argv[1], &netId)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); std::string name = argv[2]; if (!ParseInt(argv[3], &af)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); uid_t uid = cli->getUid(); unsigned netId = strtoul(argv[1], nullptr, 10); const bool useLocalNameservers = checkAndClearUseLocalNameserversFlag(&netId); std::string name = argv[2]; int af = strtol(argv[3], nullptr, 10); android_net_context netcontext; gResNetdCallbacks.get_network_context(netId, uid, &netcontext); Loading Loading @@ -1292,33 +1307,32 @@ DnsProxyListener::GetHostByAddrCmd::GetHostByAddrCmd() : FrameworkCommand("getho int DnsProxyListener::GetHostByAddrCmd::runCommand(SocketClient* cli, int argc, char** argv) { logArguments(argc, argv); int addrLen = 0; int addrFamily = 0; unsigned netId = 0; std::string strErr = "GetHostByAddrCmd::runCommand: "; if (argc != 5) { char* msg = nullptr; asprintf(&msg, "Invalid number of arguments to gethostbyaddr: %i", argc); LOG(WARNING) << "GetHostByAddrCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::CommandParameterError, msg, false); free(msg); return -1; strErr = strErr + "invalid number of arguments: " + std::to_string(argc); return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, 0, NULL); } char* addrStr = argv[1]; int addrLen = strtol(argv[2], nullptr, 10); int addrFamily = strtol(argv[3], nullptr, 10); if (!ParseInt(argv[2], &addrLen)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[3], &addrFamily)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseUint(argv[4], &netId)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); uid_t uid = cli->getUid(); unsigned netId = strtoul(argv[4], nullptr, 10); const bool useLocalNameservers = checkAndClearUseLocalNameserversFlag(&netId); in6_addr addr; errno = 0; int result = inet_pton(addrFamily, addrStr, &addr); if (result <= 0) { char* msg = nullptr; asprintf(&msg, "inet_pton(\"%s\") failed %s", addrStr, strerror(errno)); LOG(WARNING) << "GetHostByAddrCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::OperationFailed, msg, false); free(msg); return -1; strErr = strErr + "inet_pton(\"" + addrStr + "\") failed " + strerror(errno); return HandleArgumentError(cli, ResponseCode::OperationFailed, strErr, 0, NULL); } android_net_context netcontext; Loading DnsQueryLogTest.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ #include <android-base/strings.h> #include <android-base/test_utils.h> #include <gtest/gtest.h> #include <netdutils/NetNativeTestBase.h> #include "DnsQueryLog.h" #include "tests/resolv_test_base.h" using namespace std::chrono_literals; Loading Loading @@ -59,7 +59,7 @@ void verifyDumpOutput(const std::string& dumpLog, const std::vector<int>& expect } // namespace class DnsQueryLogTest : public ResolvTestBase { class DnsQueryLogTest : public NetNativeTestBase { protected: const std::vector<std::string> serversV4 = {"127.0.0.1", "1.2.3.4"}; const std::vector<std::string> serversV4V6 = {"127.0.0.1", "1.2.3.4", "2001:db8::1", Loading DnsStatsTest.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -19,9 +19,9 @@ #include <android-base/test_utils.h> #include <gmock/gmock.h> #include <gtest/gtest.h> #include <netdutils/NetNativeTestBase.h> #include "DnsStats.h" #include "tests/resolv_test_base.h" namespace android::net { Loading Loading @@ -67,7 +67,7 @@ StatsData makeStatsData(const IPSockAddr& server, const int total, const microse // TODO: add StatsDataTest to ensure its methods return correct outputs. class StatsRecordsTest : public ResolvTestBase {}; class StatsRecordsTest : public NetNativeTestBase {}; TEST_F(StatsRecordsTest, PushRecord) { const IPSockAddr server = IPSockAddr::toIPSockAddr("127.0.0.2", 53); Loading Loading @@ -105,7 +105,7 @@ TEST_F(StatsRecordsTest, PushRecord) { makeStatsData(server, 3, 750ms, {{NS_R_NO_ERROR, 0}, {NS_R_TIMEOUT, 3}})); } class DnsStatsTest : public ResolvTestBase { class DnsStatsTest : public NetNativeTestBase { protected: std::string captureDumpOutput() { netdutils::DumpWriter dw(STDOUT_FILENO); Loading DnsTlsDispatcher.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -229,7 +229,7 @@ DnsTlsTransport::Response DnsTlsDispatcher::query(const DnsTlsServer& server, un // happens, the xport will be marked as unusable and DoT queries won't be sent to // it anymore. Eventually, after IDLE_TIMEOUT, the xport will be destroyed, and // a new xport will be created. const auto result = PrivateDnsConfiguration::getInstance().requestValidation( const auto result = PrivateDnsConfiguration::getInstance().requestDotValidation( netId, PrivateDnsConfiguration::ServerIdentity{server}, mark); LOG(WARNING) << "Requested validation for " << server.toIpString() << " with mark 0x" << std::hex << mark << ", " Loading Loading
Android.bp +0 −10 Original line number Diff line number Diff line Loading @@ -300,13 +300,6 @@ cc_library_static { min_sdk_version: "29", } filegroup { name: "resolv_rust_test_config_template", srcs: [ "resolv_rust_test_config_template.xml", ], } filegroup { name: "resolv_test_config_template", srcs: [ Loading Loading @@ -366,9 +359,6 @@ rust_test { edition: "2018", test_suites: ["general-tests"], auto_gen_config: true, // Used to enable root permission for the test. // TODO: remove after 'require_root' is supported in rust_test. test_config_template: ":resolv_rust_test_config_template", rustlibs: doh_rust_deps + ["libquiche_static"], min_sdk_version: "29", } Loading
DnsProxyListener.cpp +71 −57 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <arpa/inet.h> #include <dirent.h> #include <errno.h> #include <linux/if.h> #include <math.h> #include <net/if.h> Loading @@ -34,6 +33,7 @@ #include <algorithm> #include <vector> #include <android-base/parseint.h> #include <android/multinetwork.h> // ResNsendFlags #include <cutils/misc.h> // FIRST_APPLICATION_UID #include <cutils/multiuser.h> Loading Loading @@ -63,6 +63,8 @@ using aidl::android::net::metrics::INetdEventListener; using aidl::android::net::resolv::aidl::DnsHealthEventParcel; using aidl::android::net::resolv::aidl::IDnsResolverUnsolicitedEventListener; using android::base::ParseInt; using android::base::ParseUint; using std::span; namespace android { Loading Loading @@ -235,23 +237,9 @@ int resNSendToAiError(int err, int rcode) { return EAI_SYSTEM; } template <typename IntegralType> bool simpleStrtoul(const char* input, IntegralType* output, int base = 10) { char* endPtr; errno = 0; auto result = strtoul(input, &endPtr, base); // Check the length in order to ensure there is no "-" sign if (!*input || *endPtr || (endPtr - input) != static_cast<ptrdiff_t>(strlen(input)) || (errno == ERANGE && (result == ULONG_MAX))) { return false; } *output = result; return true; } bool setQueryId(span<uint8_t> msg, uint16_t query_id) { if ((size_t)msg.size() < sizeof(HEADER)) { errno = EINVAL; LOG(ERROR) << __func__ << ": Invalid parameter"; return false; } auto hp = reinterpret_cast<HEADER*>(msg.data()); Loading Loading @@ -703,6 +691,17 @@ static bool evaluate_domain_name(const android_net_context& netcontext, const ch return gResNetdCallbacks.evaluate_domain_name(netcontext, host); } static int HandleArgumentError(SocketClient* cli, int errorcode, std::string strerrormessage, int argc, char** argv) { for (int i = 0; i < argc; i++) { strerrormessage += "argv[" + std::to_string(i) + "]=" + (argv[i] ? argv[i] : "null") + " "; } LOG(WARNING) << strerrormessage; cli->sendMsg(errorcode, strerrormessage.c_str(), false); return -1; } static bool sendBE32(SocketClient* c, uint32_t data) { uint32_t be_data = htonl(data); return c->sendData(&be_data, sizeof(be_data)) == 0; Loading Loading @@ -911,22 +910,31 @@ DnsProxyListener::GetAddrInfoCmd::GetAddrInfoCmd() : FrameworkCommand("getaddrin int DnsProxyListener::GetAddrInfoCmd::runCommand(SocketClient* cli, int argc, char** argv) { logArguments(argc, argv); int ai_flags = 0; int ai_family = 0; int ai_socktype = 0; int ai_protocol = 0; unsigned netId = 0; std::string strErr = "GetAddrInfoCmd::runCommand: "; if (argc != 8) { char* msg = nullptr; asprintf(&msg, "Invalid number of arguments to getaddrinfo: %i", argc); LOG(WARNING) << "GetAddrInfoCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::CommandParameterError, msg, false); free(msg); return -1; strErr = strErr + "invalid number of arguments: " + std::to_string(argc); return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, 0, NULL); } const std::string name = argv[1]; const std::string service = argv[2]; int ai_flags = strtol(argv[3], nullptr, 10); int ai_family = strtol(argv[4], nullptr, 10); int ai_socktype = strtol(argv[5], nullptr, 10); int ai_protocol = strtol(argv[6], nullptr, 10); unsigned netId = strtoul(argv[7], nullptr, 10); if (!ParseInt(argv[3], &ai_flags)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[4], &ai_family)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[5], &ai_socktype)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[6], &ai_protocol)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseUint(argv[7], &netId)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); const bool useLocalNameservers = checkAndClearUseLocalNameserversFlag(&netId); const uid_t uid = cli->getUid(); Loading Loading @@ -967,7 +975,7 @@ int DnsProxyListener::ResNSendCommand::runCommand(SocketClient* cli, int argc, c } unsigned netId; if (!simpleStrtoul(argv[1], &netId)) { if (!ParseUint(argv[1], &netId)) { LOG(WARNING) << "ResNSendCommand::runCommand: resnsend: from UID " << uid << ", invalid netId"; sendBE32(cli, -EINVAL); Loading @@ -975,7 +983,7 @@ int DnsProxyListener::ResNSendCommand::runCommand(SocketClient* cli, int argc, c } uint32_t flags; if (!simpleStrtoul(argv[2], &flags)) { if (!ParseUint(argv[2], &flags)) { LOG(WARNING) << "ResNSendCommand::runCommand: resnsend: from UID " << uid << ", invalid flags"; sendBE32(cli, -EINVAL); Loading Loading @@ -1077,9 +1085,14 @@ void DnsProxyListener::ResNSendHandler::run() { return; } // Restore query id and send answer if (!setQueryId({ansBuf.data(), ansLen}, original_query_id) || !sendLenAndData(mClient, ansLen, ansBuf.data())) { // Restore query id if (!setQueryId({ansBuf.data(), ansLen}, original_query_id)) { LOG(WARNING) << "ResNSendHandler::run: resnsend: failed to restore query id"; return; } // Send answer if (!sendLenAndData(mClient, ansLen, ansBuf.data())) { PLOG(WARNING) << "ResNSendHandler::run: resnsend: failed to send answer to uid " << uid << " pid " << mClient->getPid(); return; Loading Loading @@ -1124,7 +1137,7 @@ int DnsProxyListener::GetDnsNetIdCommand::runCommand(SocketClient* cli, int argc } unsigned netId; if (!simpleStrtoul(argv[1], &netId)) { if (!ParseUint(argv[1], &netId)) { LOG(WARNING) << "GetDnsNetIdCommand::runCommand: getdnsnetid: from UID " << uid << ", invalid netId"; sendCodeAndBe32(cli, ResponseCode::DnsProxyQueryResult, -EINVAL); Loading Loading @@ -1158,20 +1171,22 @@ DnsProxyListener::GetHostByNameCmd::GetHostByNameCmd() : FrameworkCommand("getho int DnsProxyListener::GetHostByNameCmd::runCommand(SocketClient* cli, int argc, char** argv) { logArguments(argc, argv); unsigned netId = 0; int af = 0; std::string strErr = "GetHostByNameCmd::runCommand: "; if (argc != 4) { char* msg = nullptr; asprintf(&msg, "Invalid number of arguments to gethostbyname: %i", argc); LOG(WARNING) << "GetHostByNameCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::CommandParameterError, msg, false); free(msg); return -1; strErr = strErr + "invalid number of arguments: " + std::to_string(argc); return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, 0, NULL); } if (!ParseUint(argv[1], &netId)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); std::string name = argv[2]; if (!ParseInt(argv[3], &af)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); uid_t uid = cli->getUid(); unsigned netId = strtoul(argv[1], nullptr, 10); const bool useLocalNameservers = checkAndClearUseLocalNameserversFlag(&netId); std::string name = argv[2]; int af = strtol(argv[3], nullptr, 10); android_net_context netcontext; gResNetdCallbacks.get_network_context(netId, uid, &netcontext); Loading Loading @@ -1292,33 +1307,32 @@ DnsProxyListener::GetHostByAddrCmd::GetHostByAddrCmd() : FrameworkCommand("getho int DnsProxyListener::GetHostByAddrCmd::runCommand(SocketClient* cli, int argc, char** argv) { logArguments(argc, argv); int addrLen = 0; int addrFamily = 0; unsigned netId = 0; std::string strErr = "GetHostByAddrCmd::runCommand: "; if (argc != 5) { char* msg = nullptr; asprintf(&msg, "Invalid number of arguments to gethostbyaddr: %i", argc); LOG(WARNING) << "GetHostByAddrCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::CommandParameterError, msg, false); free(msg); return -1; strErr = strErr + "invalid number of arguments: " + std::to_string(argc); return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, 0, NULL); } char* addrStr = argv[1]; int addrLen = strtol(argv[2], nullptr, 10); int addrFamily = strtol(argv[3], nullptr, 10); if (!ParseInt(argv[2], &addrLen)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseInt(argv[3], &addrFamily)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); if (!ParseUint(argv[4], &netId)) return HandleArgumentError(cli, ResponseCode::CommandParameterError, strErr, argc, argv); uid_t uid = cli->getUid(); unsigned netId = strtoul(argv[4], nullptr, 10); const bool useLocalNameservers = checkAndClearUseLocalNameserversFlag(&netId); in6_addr addr; errno = 0; int result = inet_pton(addrFamily, addrStr, &addr); if (result <= 0) { char* msg = nullptr; asprintf(&msg, "inet_pton(\"%s\") failed %s", addrStr, strerror(errno)); LOG(WARNING) << "GetHostByAddrCmd::runCommand: " << (msg ? msg : "null"); cli->sendMsg(ResponseCode::OperationFailed, msg, false); free(msg); return -1; strErr = strErr + "inet_pton(\"" + addrStr + "\") failed " + strerror(errno); return HandleArgumentError(cli, ResponseCode::OperationFailed, strErr, 0, NULL); } android_net_context netcontext; Loading
DnsQueryLogTest.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ #include <android-base/strings.h> #include <android-base/test_utils.h> #include <gtest/gtest.h> #include <netdutils/NetNativeTestBase.h> #include "DnsQueryLog.h" #include "tests/resolv_test_base.h" using namespace std::chrono_literals; Loading Loading @@ -59,7 +59,7 @@ void verifyDumpOutput(const std::string& dumpLog, const std::vector<int>& expect } // namespace class DnsQueryLogTest : public ResolvTestBase { class DnsQueryLogTest : public NetNativeTestBase { protected: const std::vector<std::string> serversV4 = {"127.0.0.1", "1.2.3.4"}; const std::vector<std::string> serversV4V6 = {"127.0.0.1", "1.2.3.4", "2001:db8::1", Loading
DnsStatsTest.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -19,9 +19,9 @@ #include <android-base/test_utils.h> #include <gmock/gmock.h> #include <gtest/gtest.h> #include <netdutils/NetNativeTestBase.h> #include "DnsStats.h" #include "tests/resolv_test_base.h" namespace android::net { Loading Loading @@ -67,7 +67,7 @@ StatsData makeStatsData(const IPSockAddr& server, const int total, const microse // TODO: add StatsDataTest to ensure its methods return correct outputs. class StatsRecordsTest : public ResolvTestBase {}; class StatsRecordsTest : public NetNativeTestBase {}; TEST_F(StatsRecordsTest, PushRecord) { const IPSockAddr server = IPSockAddr::toIPSockAddr("127.0.0.2", 53); Loading Loading @@ -105,7 +105,7 @@ TEST_F(StatsRecordsTest, PushRecord) { makeStatsData(server, 3, 750ms, {{NS_R_NO_ERROR, 0}, {NS_R_TIMEOUT, 3}})); } class DnsStatsTest : public ResolvTestBase { class DnsStatsTest : public NetNativeTestBase { protected: std::string captureDumpOutput() { netdutils::DumpWriter dw(STDOUT_FILENO); Loading
DnsTlsDispatcher.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -229,7 +229,7 @@ DnsTlsTransport::Response DnsTlsDispatcher::query(const DnsTlsServer& server, un // happens, the xport will be marked as unusable and DoT queries won't be sent to // it anymore. Eventually, after IDLE_TIMEOUT, the xport will be destroyed, and // a new xport will be created. const auto result = PrivateDnsConfiguration::getInstance().requestValidation( const auto result = PrivateDnsConfiguration::getInstance().requestDotValidation( netId, PrivateDnsConfiguration::ServerIdentity{server}, mark); LOG(WARNING) << "Requested validation for " << server.toIpString() << " with mark 0x" << std::hex << mark << ", " Loading