From af139955a4f896c7da57269efa60909f9fcd98df Mon Sep 17 00:00:00 2001 From: kosipov Date: Thu, 9 Apr 2026 20:41:17 +0300 Subject: [PATCH] Add README and build scripts --- Program.cs | 10 ++++++++++ run.bat | 2 ++ 2 files changed, 12 insertions(+) diff --git a/Program.cs b/Program.cs index ad8067d..6c5c700 100644 --- a/Program.cs +++ b/Program.cs @@ -16,6 +16,10 @@ class Program static string PASS = "pass"; static readonly string UPSTREAM_USER = Environment.GetEnvironmentVariable("UPSTREAM_USER"); static readonly string UPSTREAM_PASS = Environment.GetEnvironmentVariable("UPSTREAM_PASS"); + static readonly bool UPSTREAM_ALLOW_EMPTY_PASSWORD = string.Equals( + Environment.GetEnvironmentVariable("UPSTREAM_ALLOW_EMPTY_PASSWORD"), + "1", + StringComparison.OrdinalIgnoreCase); static readonly string UPSTREAM_PROXY_AUTH_HEADER = BuildUpstreamProxyAuthHeader(); static long _connectionSeq; @@ -363,6 +367,12 @@ class Program if (string.IsNullOrWhiteSpace(UPSTREAM_USER)) return string.Empty; + if (string.IsNullOrEmpty(UPSTREAM_PASS) && !UPSTREAM_ALLOW_EMPTY_PASSWORD) + { + Log.Info("UPSTREAM_PASS is empty; upstream Basic auth header is disabled"); + return string.Empty; + } + string pass = UPSTREAM_PASS ?? string.Empty; string encoded = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{UPSTREAM_USER}:{pass}")); return $"Proxy-Authorization: Basic {encoded}\r\n"; diff --git a/run.bat b/run.bat index b615fa5..bdb2d98 100644 --- a/run.bat +++ b/run.bat @@ -12,10 +12,12 @@ if not exist "%EXE%" ( set "UPSTREAM_PROXY=proxy.syktsu.ru:3128" set "UPSTREAM_USER=%USERNAME%" set "UPSTREAM_PASS=" +set "UPSTREAM_ALLOW_EMPTY_PASSWORD=0" echo [run] UPSTREAM_PROXY=%UPSTREAM_PROXY% echo [run] UPSTREAM_USER=%UPSTREAM_USER% echo [run] UPSTREAM_PASS is empty +echo [run] UPSTREAM_ALLOW_EMPTY_PASSWORD=%UPSTREAM_ALLOW_EMPTY_PASSWORD% echo [run] Starting proxy... "%EXE%"