Update On Fri Sep 26 20:35:28 CEST 2025

This commit is contained in:
github-action[bot]
2025-09-26 20:35:28 +02:00
parent f39050f25e
commit 22c5f5fb97
33 changed files with 635 additions and 392 deletions
+7 -1
View File
@@ -67,7 +67,7 @@ Options:
The default proxy is a direct connection without proxying.
The last PROXY-URI is negotiated automatically for Naive padding.
If multiple proxies are specified, they must match the number of specified
Can be specified multiple times, but they must match the number of specified
LISTEN-URIs, and each LISTEN-URI is routed to the PROXY matched by position.
Limitations:
@@ -93,6 +93,7 @@ Options:
--host-resolver-rules="MAP proxy.example.com 1.2.3.4"
Statically resolves a domain name to an IP address.
Multiple rules are comma separated.
--resolver-range=CIDR
@@ -114,3 +115,8 @@ Options:
--no-post-quantum
Overrides the default and disables post-quantum key agreement.
--env=NAME=VALUE
Sets the environment variable NAME to the value VALUE. Can be specified
multiple times.
@@ -6,6 +6,7 @@
#include <algorithm>
#include <iostream>
#include "base/environment.h"
#include "base/strings/escape.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_tokenizer.h"
@@ -285,6 +286,39 @@ bool NaiveConfig::Parse(const base::Value::Dict& value) {
no_post_quantum = true;
}
if (const base::Value* v = value.Find("env")) {
std::vector<std::string> env_strs;
if (const std::string* str = v->GetIfString(); str && !str->empty()) {
env_strs.push_back(*str);
} else if (const base::Value::List* strs = v->GetIfList()) {
for (const auto& str_e : *strs) {
if (const std::string* s = str_e.GetIfString(); s && !s->empty()) {
env_strs.push_back(*s);
} else {
std::cerr << "Invalid env element" << std::endl;
return false;
}
}
} else {
std::cerr << "Invalid env argument" << std::endl;
return false;
}
auto env = base::Environment::Create();
for (const std::string& str : env_strs) {
size_t equal_pos = str.find_first_of('=');
if (equal_pos != std::string::npos && equal_pos > 0 &&
equal_pos + 1 < str.size()) {
std::string env_name = str.substr(0, equal_pos);
std::string env_value = str.substr(equal_pos + 1);
if (!env->SetVar(env_name, env_value)) {
std::cerr << "Invalid env element " << str << std::endl;
}
} else {
std::cerr << "Invalid env element " << str << std::endl;
}
}
}
return true;
}
@@ -13,6 +13,7 @@
#include "base/at_exit.h"
#include "base/check.h"
#include "base/command_line.h"
#include "base/environment.h"
#include "base/feature_list.h"
#include "base/files/file_path.h"
#include "base/json/json_file_value_serializer.h"
@@ -533,7 +534,7 @@ int main(int argc, char* argv[]) {
naive_proxies.push_back(std::move(naive_proxy));
}
if (getenv("TEST_MARK_STARTUP") != nullptr) {
if (base::Environment::Create()->HasVar("TEST_MARK_STARTUP")) {
LOG(INFO) << "TEST_MARK_STARTUP";
}
base::RunLoop().Run();