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

Commit b102dd2e authored by Bernie Innocenti's avatar Bernie Innocenti
Browse files

Enable -Wsign-compare for netd and fix warnings

Test: atest netd_unit_test netd_integration_test resolv_integration_test
Change-Id: I84347de8f3a3ec0dcc8979037b9c265d145a35f7
parent 16bb0914
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -26,15 +26,15 @@
#include "netdutils/BackoffSequence.h"

int resolv_set_private_dns_for_net(unsigned netid, uint32_t mark, const char** servers,
                                   const unsigned numServers, const char* tlsName,
                                   const uint8_t** fingerprints, const unsigned numFingerprint) {
                                   const int numServers, const char* tlsName,
                                   const uint8_t** fingerprints, const int numFingerprint) {
    std::vector<std::string> tlsServers;
    for (unsigned i = 0; i < numServers; i++) {
    for (int i = 0; i < numServers; i++) {
        tlsServers.push_back(std::string(servers[i]));
    }

    std::set<std::vector<uint8_t>> tlsFingerprints;
    for (unsigned i = 0; i < numFingerprint; i++) {
    for (int i = 0; i < numFingerprint; i++) {
        // Each fingerprint stored are 32(SHA256_SIZE) bytes long.
        tlsFingerprints.emplace(std::vector<uint8_t>(fingerprints[i], fingerprints[i] + 32));
    }
@@ -194,7 +194,7 @@ void PrivateDnsConfiguration::getStatus(unsigned netId, ExternalPrivateDnsStatus

    const auto netPair = mPrivateDnsTransports.find(netId);
    if (netPair != mPrivateDnsTransports.end()) {
        status->numServers = netPair->second.size();
        status->numServers = static_cast<int>(netPair->second.size());
        int count = 0;
        for (const auto& serverPair : netPair->second) {
            status->serverStatus[count].ss = serverPair.first.ss;
+4 −5
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ struct android_net_context {

struct ExternalPrivateDnsStatus {
    PrivateDnsMode mode;
    unsigned numServers;
    int numServers;
    struct PrivateDnsInfo {
        sockaddr_storage ss;
        const char* hostname;
@@ -119,15 +119,14 @@ LIBNETD_RESOLV_PUBLIC int resolv_res_nsend(const android_net_context* netContext

// Set name servers for a network
LIBNETD_RESOLV_PUBLIC int resolv_set_nameservers_for_net(unsigned netid, const char** servers,
                                                         unsigned numservers, const char* domains,
                                                         int numservers, const char* domains,
                                                         const __res_params* params);

LIBNETD_RESOLV_PUBLIC int resolv_set_private_dns_for_net(unsigned netid, uint32_t mark,
                                                         const char** servers,
                                                         const unsigned numServers,
                                                         const char** servers, int numServers,
                                                         const char* tlsName,
                                                         const uint8_t** fingerprints,
                                                         const unsigned numFingerprints);
                                                         int numFingerprints);

LIBNETD_RESOLV_PUBLIC void resolv_delete_private_dns_for_net(unsigned netid);

+5 −6
Original line number Diff line number Diff line
@@ -1729,7 +1729,7 @@ static void resolv_set_default_params(struct __res_params* params) {
    params->base_timeout_msec = 0;  // 0 = legacy algorithm
}

int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigned numservers,
int resolv_set_nameservers_for_net(unsigned netid, const char** servers, const int numservers,
                                   const char* domains, const __res_params* params) {
    char* cp;
    int* offset;
@@ -1744,13 +1744,13 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne
    // As a side effect this also reduces the time the lock is kept.
    char sbuf[NI_MAXSERV];
    snprintf(sbuf, sizeof(sbuf), "%u", NAMESERVER_PORT);
    for (unsigned i = 0; i < numservers; i++) {
    for (int i = 0; i < numservers; i++) {
        // The addrinfo structures allocated here are freed in free_nameservers_locked().
        const addrinfo hints = {
                .ai_family = AF_UNSPEC, .ai_socktype = SOCK_DGRAM, .ai_flags = AI_NUMERICHOST};
        int rt = getaddrinfo_numeric(servers[i], sbuf, hints, &nsaddrinfo[i]);
        if (rt != 0) {
            for (unsigned j = 0; j < i; j++) {
            for (int j = 0; j < i; j++) {
                freeaddrinfo(nsaddrinfo[j]);
            }
            VLOG << __func__ << ": getaddrinfo_numeric(" << servers[i]
@@ -1778,8 +1778,7 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne
        if (!resolv_is_nameservers_equal_locked(cache_info, servers, numservers)) {
            // free current before adding new
            free_nameservers_locked(cache_info);
            unsigned i;
            for (i = 0; i < numservers; i++) {
            for (int i = 0; i < numservers; i++) {
                cache_info->nsaddrinfo[i] = nsaddrinfo[i];
                cache_info->nameservers[i] = strdup(servers[i]);
                VLOG << __func__ << ": netid = " << netid << ", addr = " << servers[i];
@@ -1804,7 +1803,7 @@ int resolv_set_nameservers_for_net(unsigned netid, const char** servers, unsigne
                res_cache_clear_stats_locked(cache_info);
                ++cache_info->revision_id;
            }
            for (unsigned j = 0; j < numservers; j++) {
            for (int j = 0; j < numservers; j++) {
                freeaddrinfo(nsaddrinfo[j]);
            }
        }
+6 −6
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ class ResolverTest : public ::testing::Test, public DnsResponderClient {
        std::vector<int32_t> stats32;
        auto rv = mNetdSrv->getResolverInfo(TEST_NETID, servers, domains, tlsServers, &params32,
                                            &stats32);
        if (!rv.isOk() || params32.size() != INetd::RESOLVER_PARAMS_COUNT) {
        if (!rv.isOk() || params32.size() != static_cast<size_t>(INetd::RESOLVER_PARAMS_COUNT)) {
            return false;
        }
        *params = __res_params {
@@ -456,7 +456,7 @@ TEST_F(ResolverTest, BinderSerialization) {
        INetd::RESOLVER_PARAMS_MAX_SAMPLES,
        INetd::RESOLVER_PARAMS_BASE_TIMEOUT_MSEC,
    };
    int size = static_cast<int>(params_offsets.size());
    const int size = static_cast<int>(params_offsets.size());
    EXPECT_EQ(size, INetd::RESOLVER_PARAMS_COUNT);
    std::sort(params_offsets.begin(), params_offsets.end());
    for (int i = 0; i < size; ++i) {
@@ -479,8 +479,8 @@ TEST_F(ResolverTest, GetHostByName_Binder) {
    ASSERT_TRUE(SetResolversForNetwork(servers, domains, mDefaultParams_Binder));

    const hostent* result = gethostbyname(mapping.host.c_str());
    size_t total_queries = std::accumulate(dns.begin(), dns.end(), 0,
            [this, &mapping](size_t total, auto& d) {
    const size_t total_queries =
            std::accumulate(dns.begin(), dns.end(), 0, [this, &mapping](size_t total, auto& d) {
                return total + GetNumQueriesForType(*d, ns_type::ns_t_a, mapping.entry.c_str());
            });