Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9a19f56 authored by Ken Chen's avatar Ken Chen
Browse files

Revert "Add debug trace for MdnsIPv6LinkLocalWithDefaultRoute"

This reverts commit 46079f72.

Reason for revert: b/247693272 is clarified

Change-Id: Ib3f2d7b756e795dd44c2924a8e4b45c0e2c7e44b
parent 46079f72
Loading
Loading
Loading
Loading
+2 −16
Original line number Original line Diff line number Diff line
@@ -1269,32 +1269,25 @@ static int _rfc6724_compare(const void* ptr1, const void* ptr2) {


static int _find_src_addr(const struct sockaddr* addr, struct sockaddr* src_addr, unsigned mark,
static int _find_src_addr(const struct sockaddr* addr, struct sockaddr* src_addr, unsigned mark,
                          uid_t uid, bool allow_v6_linklocal) {
                          uid_t uid, bool allow_v6_linklocal) {
    if (src_addr == nullptr) {
    if (src_addr == nullptr) return -1;
        LOG(DEBUG) << __func__ << ": src_addr==nullptr";
        return -1;
    }


    int ret;
    int ret;
    socklen_t len;
    socklen_t len;


    switch (addr->sa_family) {
    switch (addr->sa_family) {
        case AF_INET:
        case AF_INET:
            LOG(DEBUG) << __func__ << ": sa_family AF_INET";
            len = sizeof(struct sockaddr_in);
            len = sizeof(struct sockaddr_in);
            break;
            break;
        case AF_INET6:
        case AF_INET6:
            LOG(DEBUG) << __func__ << ": sa_family AF_INET6";
            len = sizeof(struct sockaddr_in6);
            len = sizeof(struct sockaddr_in6);
            break;
            break;
        default:
        default:
            /* No known usable source address for non-INET families. */
            /* No known usable source address for non-INET families. */
            LOG(DEBUG) << __func__ << ": non-INET families " << addr->sa_family;
            return 0;
            return 0;
    }
    }


    android::base::unique_fd sock(socket(addr->sa_family, SOCK_DGRAM | SOCK_CLOEXEC, IPPROTO_UDP));
    android::base::unique_fd sock(socket(addr->sa_family, SOCK_DGRAM | SOCK_CLOEXEC, IPPROTO_UDP));
    if (sock.get() == -1) {
    if (sock.get() == -1) {
        LOG(DEBUG) << __func__ << ": sock() error, " << strerror(errno);
        if (errno == EAFNOSUPPORT) {
        if (errno == EAFNOSUPPORT) {
            return 0;
            return 0;
        } else {
        } else {
@@ -1302,11 +1295,9 @@ static int _find_src_addr(const struct sockaddr* addr, struct sockaddr* src_addr
        }
        }
    }
    }
    if (mark != MARK_UNSET && setsockopt(sock, SOL_SOCKET, SO_MARK, &mark, sizeof(mark)) < 0) {
    if (mark != MARK_UNSET && setsockopt(sock, SOL_SOCKET, SO_MARK, &mark, sizeof(mark)) < 0) {
        LOG(DEBUG) << __func__ << ": setsockopt() error, " << strerror(errno);
        return 0;
        return 0;
    }
    }
    if (uid > 0 && uid != NET_CONTEXT_INVALID_UID && fchown(sock, uid, (gid_t) -1) < 0) {
    if (uid > 0 && uid != NET_CONTEXT_INVALID_UID && fchown(sock, uid, (gid_t) -1) < 0) {
        LOG(DEBUG) << __func__ << ": fchown() error, " << strerror(errno);
        return 0;
        return 0;
    }
    }
    do {
    do {
@@ -1314,25 +1305,20 @@ static int _find_src_addr(const struct sockaddr* addr, struct sockaddr* src_addr
    } while (ret == -1 && errno == EINTR);
    } while (ret == -1 && errno == EINTR);


    if (ret == -1) {
    if (ret == -1) {
        LOG(DEBUG) << __func__ << ": connect() return -1, " << strerror(errno);
        return 0;
        return 0;
    }
    }


    if (getsockname(sock, src_addr, &len) == -1) {
    if (getsockname(sock, src_addr, &len) == -1) {
        LOG(DEBUG) << __func__ << ": getsockname() return -1, " << strerror(errno);
        return -1;
        return -1;
    }
    }


    if (src_addr->sa_family == AF_INET6) {
    if (src_addr->sa_family == AF_INET6) {
        sockaddr_in6* sin6 = reinterpret_cast<sockaddr_in6*>(src_addr);
        sockaddr_in6* sin6 = reinterpret_cast<sockaddr_in6*>(src_addr);
        if (!allow_v6_linklocal && IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
        if (!allow_v6_linklocal && IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
            LOG(DEBUG) << __func__ << ": !allow_v6_linklocal && IN6_IS_ADDR_LINKLOCAL";
            return 0;
            return 0;
        }
        }
        LOG(DEBUG) << __func__ << ": AF_INET6. allow_v6_linklocal=" << allow_v6_linklocal
                   << " IN6_IS_ADDR_LINKLOCAL=" << IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr);
    }
    }
    LOG(DEBUG) << __func__ << ": return 1";

    return 1;
    return 1;
}
}


+1 −4
Original line number Original line Diff line number Diff line
@@ -757,13 +757,10 @@ int herrnoToAiErrno(int he) {


void setMdnsFlag(std::string_view hostname, unsigned netid, uint32_t* flags) {
void setMdnsFlag(std::string_view hostname, unsigned netid, uint32_t* flags) {
    if (hostname.ends_with(".local") && is_mdns_supported_network(netid) &&
    if (hostname.ends_with(".local") && is_mdns_supported_network(netid) &&
        android::net::Experiments::getInstance()->getFlag("mdns_resolution", 1)) {
        android::net::Experiments::getInstance()->getFlag("mdns_resolution", 1))
        LOG(DEBUG) << __func__ << ": *flags |= RES_F_MDNS";
        *flags |= RES_F_MDNS;
        *flags |= RES_F_MDNS;
}
}
}


bool isMdnsResolution(uint32_t flags) {
bool isMdnsResolution(uint32_t flags) {
    LOG(DEBUG) << __func__ << ": " << (bool)(flags & RES_F_MDNS);
    return flags & RES_F_MDNS;
    return flags & RES_F_MDNS;
}
}
+1 −6
Original line number Original line Diff line number Diff line
@@ -1567,21 +1567,16 @@ android::net::NetworkType resolv_get_network_types_for_net(unsigned netid) {
bool is_mdns_supported_transport_types(const std::vector<int32_t>& transportTypes) {
bool is_mdns_supported_transport_types(const std::vector<int32_t>& transportTypes) {
    for (const auto& tp : transportTypes) {
    for (const auto& tp : transportTypes) {
        if (tp == IDnsResolver::TRANSPORT_CELLULAR || tp == IDnsResolver::TRANSPORT_VPN) {
        if (tp == IDnsResolver::TRANSPORT_CELLULAR || tp == IDnsResolver::TRANSPORT_VPN) {
            LOG(DEBUG) << __func__ << ": return false, tp=" << tp;
            return false;
            return false;
        }
        }
    }
    }
    LOG(DEBUG) << __func__ << ": return true";
    return true;
    return true;
}
}


bool is_mdns_supported_network(unsigned netid) {
bool is_mdns_supported_network(unsigned netid) {
    std::lock_guard guard(cache_mutex);
    std::lock_guard guard(cache_mutex);
    NetConfig* netconfig = find_netconfig_locked(netid);
    NetConfig* netconfig = find_netconfig_locked(netid);
    if (netconfig == nullptr) {
    if (netconfig == nullptr) return false;
        LOG(DEBUG) << __func__ << ": netconfig == nullptr";
        return false;
    }
    return is_mdns_supported_transport_types(netconfig->transportTypes);
    return is_mdns_supported_transport_types(netconfig->transportTypes);
}
}


+1 −13
Original line number Original line Diff line number Diff line
@@ -7606,12 +7606,6 @@ TEST_F(ResolverMultinetworkTest, MdnsIPv6LinkLocalWithDefaultRoute) {
    constexpr char v6addr[] = "::127.0.0.3";
    constexpr char v6addr[] = "::127.0.0.3";
    constexpr char v4addr[] = "127.0.0.3";
    constexpr char v4addr[] = "127.0.0.3";
    constexpr char host_name[] = "hello.local.";
    constexpr char host_name[] = "hello.local.";

    // TODO: remove debugging log when b/247693272 is clarified.
    ASSERT_TRUE(mDnsClient.resolvService()
                        ->setLogSeverity(aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_DEBUG)
                        .isOk());

    ScopedPhysicalNetwork network = CreateScopedPhysicalNetwork(ConnectivityType::V4);
    ScopedPhysicalNetwork network = CreateScopedPhysicalNetwork(ConnectivityType::V4);
    ASSERT_RESULT_OK(network.init());
    ASSERT_RESULT_OK(network.init());


@@ -7644,12 +7638,6 @@ TEST_F(ResolverMultinetworkTest, MdnsIPv6LinkLocalWithDefaultRoute) {
    EXPECT_EQ(GetNumQueries(mdnsv6, host_name), 1U);
    EXPECT_EQ(GetNumQueries(mdnsv6, host_name), 1U);
    EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_a, host_name), 0U);
    EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_a, host_name), 0U);
    EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_aaaa, host_name), 0U);
    EXPECT_EQ(GetNumQueriesForType(*dnsPair->dnsServer, ns_type::ns_t_aaaa, host_name), 0U);

    // Reset logging level to "default" without checking the previous logging level, since no
    // public function to get current level, and it's for temporary debugging only.
    ASSERT_TRUE(mDnsClient.resolvService()
                        ->setLogSeverity(aidl::android::net::IDnsResolver::DNS_RESOLVER_LOG_INFO)
                        .isOk());
}
}


TEST_F(ResolverTest, NegativeValueInExperimentFlag) {
TEST_F(ResolverTest, NegativeValueInExperimentFlag) {