Harden Windows Server compatibility and system-wide proxy.
Fix exit-IP checks for HTTP-only proxies, apply proxy via WinINet Connections blob and WinHTTP, improve VPN detection on legacy Server, add SOCKS5 host:port:user:pass exit parsing, and add win_compat probe for PowerShell 2.0 hosts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,6 +10,7 @@ from proxy_chain_manager.config import (
|
||||
Settings,
|
||||
merge_proxy_credentials,
|
||||
normalize_proxy_url,
|
||||
parse_exit_proxy_input,
|
||||
redact_proxy_url,
|
||||
sanitize_settings,
|
||||
split_proxy_for_edit,
|
||||
@@ -87,6 +88,45 @@ class TestConfig(unittest.TestCase):
|
||||
self.assertTrue(changed)
|
||||
self.assertGreater(len(s2.sources), 0)
|
||||
|
||||
def test_parse_exit_host_port_only_defaults_to_socks5(self) -> None:
|
||||
base, u, pw = parse_exit_proxy_input("1.2.3.4:1080")
|
||||
self.assertEqual(base, "socks5://1.2.3.4:1080")
|
||||
self.assertEqual(u, "")
|
||||
self.assertEqual(pw, "")
|
||||
|
||||
def test_parse_exit_colon_quadruple(self) -> None:
|
||||
base, u, pw = parse_exit_proxy_input("1.2.3.4:1080:alice:s3cret")
|
||||
self.assertEqual(base, "socks5://1.2.3.4:1080")
|
||||
self.assertEqual(u, "alice")
|
||||
self.assertEqual(pw, "s3cret")
|
||||
|
||||
def test_parse_exit_password_with_colon_kept_intact(self) -> None:
|
||||
base, u, pw = parse_exit_proxy_input("h:9:u:a:b:c")
|
||||
self.assertEqual(base, "socks5://h:9")
|
||||
self.assertEqual(u, "u")
|
||||
self.assertEqual(pw, "a:b:c")
|
||||
|
||||
def test_parse_exit_at_form_no_scheme(self) -> None:
|
||||
base, u, pw = parse_exit_proxy_input("alice:secret@1.2.3.4:1080")
|
||||
self.assertEqual(base, "socks5://1.2.3.4:1080")
|
||||
self.assertEqual(u, "alice")
|
||||
self.assertEqual(pw, "secret")
|
||||
|
||||
def test_parse_exit_respects_explicit_scheme(self) -> None:
|
||||
base, u, pw = parse_exit_proxy_input("http://x:y@9.9.9.9:8080")
|
||||
self.assertEqual(base, "http://9.9.9.9:8080")
|
||||
self.assertEqual(u, "x")
|
||||
self.assertEqual(pw, "y")
|
||||
|
||||
def test_parse_exit_whitespace_form(self) -> None:
|
||||
base, u, pw = parse_exit_proxy_input("1.2.3.4:1080 alice s3cret")
|
||||
self.assertEqual(base, "socks5://1.2.3.4:1080")
|
||||
self.assertEqual(u, "alice")
|
||||
self.assertEqual(pw, "s3cret")
|
||||
|
||||
def test_parse_exit_empty(self) -> None:
|
||||
self.assertEqual(parse_exit_proxy_input(" "), ("", "", ""))
|
||||
|
||||
def test_sanitize_clamps_extremes(self) -> None:
|
||||
s = Settings(
|
||||
chain_length=0,
|
||||
|
||||
Reference in New Issue
Block a user