net: Rename _randomize_credentials Proxy parameter to tor_stream_isolation

Rename the `_randomize_credentials` parameter to Proxy's constructor to
`tor_stream_isolation` to make it more clear, and more specific what its
purpose is.

Also change all call sites to use a named parameter.
This commit is contained in:
laanwj 2025-03-31 16:18:07 +02:00
parent 1a6fc04d81
commit c47f81e8ac
6 changed files with 12 additions and 12 deletions

View file

@ -1578,14 +1578,14 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
if (proxyArg != "" && proxyArg != "0") {
Proxy addrProxy;
if (IsUnixSocketPath(proxyArg)) {
addrProxy = Proxy(proxyArg, proxyRandomize);
addrProxy = Proxy(proxyArg, /*tor_stream_isolation=*/proxyRandomize);
} else {
const std::optional<CService> proxyAddr{Lookup(proxyArg, 9050, fNameLookup)};
if (!proxyAddr.has_value()) {
return InitError(strprintf(_("Invalid -proxy address or hostname: '%s'"), proxyArg));
}
addrProxy = Proxy(proxyAddr.value(), proxyRandomize);
addrProxy = Proxy(proxyAddr.value(), /*tor_stream_isolation=*/proxyRandomize);
}
if (!addrProxy.IsValid())
@ -1614,14 +1614,14 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
}
} else {
if (IsUnixSocketPath(onionArg)) {
onion_proxy = Proxy(onionArg, proxyRandomize);
onion_proxy = Proxy(onionArg, /*tor_stream_isolation=*/proxyRandomize);
} else {
const std::optional<CService> addr{Lookup(onionArg, 9050, fNameLookup)};
if (!addr.has_value() || !addr->IsValid()) {
return InitError(strprintf(_("Invalid -onion address or hostname: '%s'"), onionArg));
}
onion_proxy = Proxy(addr.value(), proxyRandomize);
onion_proxy = Proxy(addr.value(), /*tor_stream_isolation=*/proxyRandomize);
}
}
}

View file

@ -738,7 +738,7 @@ std::unique_ptr<Sock> ConnectThroughProxy(const Proxy& proxy,
}
// do socks negotiation
if (proxy.m_randomize_credentials) {
if (proxy.m_tor_stream_isolation) {
ProxyCredentials random_auth;
static std::atomic_int counter(0);
random_auth.username = random_auth.password = strprintf("%i", counter++);

View file

@ -58,14 +58,14 @@ bool IsUnixSocketPath(const std::string& name);
class Proxy
{
public:
Proxy() : m_is_unix_socket(false), m_randomize_credentials(false) {}
explicit Proxy(const CService& _proxy, bool _randomize_credentials = false) : proxy(_proxy), m_is_unix_socket(false), m_randomize_credentials(_randomize_credentials) {}
explicit Proxy(const std::string path, bool _randomize_credentials = false) : m_unix_socket_path(path), m_is_unix_socket(true), m_randomize_credentials(_randomize_credentials) {}
Proxy() : m_is_unix_socket(false), m_tor_stream_isolation(false) {}
explicit Proxy(const CService& _proxy, bool tor_stream_isolation = false) : proxy(_proxy), m_is_unix_socket(false), m_tor_stream_isolation(tor_stream_isolation) {}
explicit Proxy(const std::string path, bool tor_stream_isolation = false) : m_unix_socket_path(path), m_is_unix_socket(true), m_tor_stream_isolation(tor_stream_isolation) {}
CService proxy;
std::string m_unix_socket_path;
bool m_is_unix_socket;
bool m_randomize_credentials;
bool m_tor_stream_isolation;
bool IsValid() const
{

View file

@ -486,7 +486,7 @@ QValidator::State ProxyAddressValidator::validate(QString &input, int &pos) cons
if (!SplitHostPort(input.toStdString(), port, hostname) || port != 0) return QValidator::Invalid;
CService serv(LookupNumeric(input.toStdString(), DEFAULT_GUI_PROXY_PORT));
Proxy addrProxy = Proxy(serv, true);
Proxy addrProxy = Proxy(serv, /*tor_stream_isolation=*/true);
if (addrProxy.IsValid())
return QValidator::Acceptable;

View file

@ -609,7 +609,7 @@ static UniValue GetNetworksInfo()
obj.pushKV("limited", !g_reachable_nets.Contains(network));
obj.pushKV("reachable", g_reachable_nets.Contains(network));
obj.pushKV("proxy", proxy.IsValid() ? proxy.ToString() : std::string());
obj.pushKV("proxy_randomize_credentials", proxy.m_randomize_credentials);
obj.pushKV("proxy_randomize_credentials", proxy.m_tor_stream_isolation);
networks.push_back(std::move(obj));
}
return networks;

View file

@ -407,7 +407,7 @@ void TorController::get_socks_cb(TorControlConnection& _conn, const TorControlRe
// With m_randomize_credentials = true, generates unique SOCKS credentials per proxy connection (e.g., Tor).
// Prevents connection correlation and enhances privacy by forcing different Tor circuits.
// Requires Tor's IsolateSOCKSAuth (default enabled) for effective isolation (see IsolateSOCKSAuth section in https://2019.www.torproject.org/docs/tor-manual.html.en).
Proxy addrOnion = Proxy(resolved, /*_randomize_credentials=*/ true);
Proxy addrOnion = Proxy(resolved, /*tor_stream_isolation=*/ true);
SetProxy(NET_ONION, addrOnion);
const auto onlynets = gArgs.GetArgs("-onlynet");