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

Commit 9c720101 authored by Mike Yu's avatar Mike Yu
Browse files

Add getExperimentFlagInt to utility

A utility used for getting the integer from the experiment flag.
No functionality change.

Bug: 120182528
Bug: 141218721
Test: manually setting the device_config works, e.g.
      adb shell device_config put netd_native dot_connect_timeout_ms 3000
Change-Id: Ib4bb39b0465de86c3db0151f0b3c3a66f5a83de8
parent 40e6707a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -62,9 +62,9 @@ struct DnsTlsServer {
    // The time to wait for the attempt on connecting to the server.
    // Set the default value 127 seconds to be consistent with TCP connect timeout.
    // (presume net.ipv4.tcp_syn_retries = 6)
    std::chrono::milliseconds connectTimeout = std::chrono::milliseconds(kDotConnectTimeoutMs);

    static constexpr int kDotConnectTimeoutMs = 127 * 1000;
    static constexpr std::chrono::milliseconds kDotConnectTimeoutMs =
            std::chrono::milliseconds(127 * 1000);
    std::chrono::milliseconds connectTimeout = kDotConnectTimeoutMs;

    // Exact comparison of DnsTlsServer objects
    bool operator<(const DnsTlsServer& other) const;
+6 −10
Original line number Diff line number Diff line
@@ -19,11 +19,9 @@
#include "PrivateDnsConfiguration.h"

#include <android-base/logging.h>
#include <android-base/parseint.h>
#include <android-base/stringprintf.h>
#include <netdb.h>
#include <netdutils/ThreadUtil.h>
#include <server_configurable_flags/get_flags.h>
#include <sys/socket.h>

#include "DnsTlsTransport.h"
@@ -31,9 +29,8 @@
#include "netd_resolv/resolv.h"
#include "netdutils/BackoffSequence.h"
#include "resolv_cache.h"
#include "util.h"

using android::base::ParseInt;
using server_configurable_flags::GetServerConfigurableFlag;
using std::chrono::milliseconds;

namespace android {
@@ -41,10 +38,9 @@ namespace net {

namespace {

milliseconds getTimeoutFromExperimentFlag(const std::string& flagName, const int defaultValue) {
    int val = defaultValue;
    ParseInt(GetServerConfigurableFlag("netd_native", flagName, ""), &val);
    return (val < 1000) ? milliseconds(1000) : milliseconds(val);
milliseconds getExperimentTimeout(const std::string& flagName, const milliseconds defaultValue) {
    int val = getExperimentFlagInt(flagName, defaultValue.count());
    return milliseconds((val < 1000) ? 1000 : val);
}

}  // namespace
@@ -90,8 +86,8 @@ int PrivateDnsConfiguration::set(int32_t netId, uint32_t mark,
        DnsTlsServer server(parsed);
        server.name = name;
        server.certificate = caCert;
        server.connectTimeout = getTimeoutFromExperimentFlag("dot_connect_timeout_ms",
                                                             DnsTlsServer::kDotConnectTimeoutMs);
        server.connectTimeout =
                getExperimentTimeout("dot_connect_timeout_ms", DnsTlsServer::kDotConnectTimeoutMs);
        tlsServers.insert(server);
        LOG(DEBUG) << "Set DoT connect timeout " << server.connectTimeout.count() << "ms for " << s;
    }
+3 −8
Original line number Diff line number Diff line
@@ -1527,18 +1527,13 @@ static resolv_cache_info* find_cache_info_locked(unsigned netid) {
}

static void resolv_set_experiment_params(res_params* params) {
    using android::base::ParseInt;
    using server_configurable_flags::GetServerConfigurableFlag;

    if (params->retry_count == 0) {
        params->retry_count = RES_DFLRETRY;
        ParseInt(GetServerConfigurableFlag("netd_native", "retry_count", ""), &params->retry_count);
        params->retry_count = getExperimentFlagInt("retry_count", RES_DFLRETRY);
    }

    if (params->base_timeout_msec == 0) {
        params->base_timeout_msec = RES_TIMEOUT;
        ParseInt(GetServerConfigurableFlag("netd_native", "retransmission_time_interval", ""),
                 &params->base_timeout_msec);
        params->base_timeout_msec =
                getExperimentFlagInt("retransmission_time_interval", RES_TIMEOUT);
    }
}

+12 −0
Original line number Diff line number Diff line
@@ -17,6 +17,12 @@

#include "util.h"

#include <android-base/parseint.h>
#include <server_configurable_flags/get_flags.h>

using android::base::ParseInt;
using server_configurable_flags::GetServerConfigurableFlag;

socklen_t sockaddrSize(const sockaddr* sa) {
    if (sa == nullptr) return 0;

@@ -33,3 +39,9 @@ socklen_t sockaddrSize(const sockaddr* sa) {
socklen_t sockaddrSize(const sockaddr_storage& ss) {
    return sockaddrSize(reinterpret_cast<const sockaddr*>(&ss));
}

int getExperimentFlagInt(const std::string& flagName, int defaultValue) {
    int val = defaultValue;
    ParseInt(GetServerConfigurableFlag("netd_native", flagName, ""), &val);
    return val;
}
+5 −0
Original line number Diff line number Diff line
@@ -17,7 +17,12 @@

#pragma once

#include <string>

#include <netinet/in.h>

socklen_t sockaddrSize(const sockaddr* sa);
socklen_t sockaddrSize(const sockaddr_storage& ss);

// TODO: getExperimentFlagString
int getExperimentFlagInt(const std::string& flagName, int defaultValue);