Repository navigation
Releases: baizhizzl/dsh-network-proxy
Releases · baizhizzl/dsh-network-proxy
Release list
v1.0.3
Security and robustness release from an independent review.
Security
- PAC scripts now run in a context without host objects (in-realm helpers, string code generation disabled, 100 ms timeout). The previous sandbox exposed the host Function constructor through injected helpers and the argument array; a PAC could execute Host code. New tests assert both escape paths fail.
- Proxy URLs with malformed percent escapes in credentials are rejected instead of throwing URIError on first use; PAC PROXY tokens are validated too.
- ProxyAgent construction failures no longer break the dispatcher.
Behavior
- System detection and PAC download only for system mode and explicit re-detect; direct/custom saves are instant.
- PAC failures fall back to a static proxy when present, surface pac-failed, and no longer publish a PAC sample to child HTTP_PROXY.
- macOS per-scheme Enable bits, ExcludeSimpleHostnames, dormant address.
- PAC URL keeps path/query in the row; server/dormant sanitized.
- Teardown order, first-get readiness, persist-failed code, 0600 config file.
- Client: locale fallback, custom-text resync + unsaved hint, 15 s timeout with Retry, IME-safe Enter.
- IPv6 CIDR bypass and ws/wss default ports.
Tests
52/52 host checks pass.
v1.0.2
Second review pass.
Fixes
- Enter that confirms an IME candidate no longer submits the custom proxy field.
- PAC policies are fingerprinted by script + bypass list only, so changing sample addresses no longer rebuilds the dispatcher.
- TCP reachability is cached for 15 s and shared between detection and apply, avoiding a duplicate connect and a duplicate 2 s timeout while the proxy is down.
Tests
43/43 host checks pass.
v1.0.1
Bug-review release.
Fixes
- PAC auto-config now applies even when Windows' manual proxy switch is off.
- macOS: parse the ExceptionsList bypass array and honour PAC.
- PAC evaluation is time-bounded (100 ms per call) and contained: a broken or looping script degrades to a direct connection instead of blocking the dispatcher.
- Compiled PAC scripts are cached for 60 s; an explicit re-detect still refreshes.
- Re-applying an unchanged policy no longer rebuilds the dispatcher, preserving pooled connections.
- ProxyServer credentials and default ports are preserved; credentials are stripped from the status payload sent to the browser.
- WPAD auto-detection is reported as unsupported instead of silently going direct.
Tests
42/42 host checks pass (now including PAC timeouts, policy fingerprints, dispatcher reuse and credential hiding). The harness discovers the Harness install via process.resourcesPath; override with DSH_HOST_ENTRY.