mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
fix: Bypass proxy for loopback addresses to prevent localhost connection failures (#194)
When users have HTTP_PROXY/HTTPS_PROXY set in their shell (e.g. corporate proxy), PMG's upstream transport routes all traffic through that external proxy — including requests to localhost/127.0.0.1. The external proxy cannot reach the user's loopback, causing EFAULT/ConnectionRefused errors. This adds loopback bypass in two places: - Proxy upstream transport skips external proxy for localhost/127.0.0.1/::1 - Child process env gets NO_PROXY so proxy-aware libs (axios) skip PMG's proxy for loopback addresses Fixes #193 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
5fdc3a03ae
commit
635e40cc1f
@@ -279,14 +279,18 @@ func (f *proxyFlow) createAndStartProxyServer(
|
||||
func (f *proxyFlow) setupEnvForProxy(proxyAddr, caCertPath string) []string {
|
||||
proxyURL := fmt.Sprintf("http://%s", proxyAddr)
|
||||
|
||||
noProxyList := "localhost,127.0.0.1,[::1]"
|
||||
|
||||
env := os.Environ()
|
||||
env = append(env,
|
||||
"NODE_USE_ENV_PROXY=1",
|
||||
fmt.Sprintf("HTTP_PROXY=%s", proxyURL),
|
||||
fmt.Sprintf("HTTPS_PROXY=%s", proxyURL),
|
||||
fmt.Sprintf("NO_PROXY=%s", noProxyList),
|
||||
fmt.Sprintf("NODE_EXTRA_CA_CERTS=%s", caCertPath),
|
||||
fmt.Sprintf("http_proxy=%s", proxyURL),
|
||||
fmt.Sprintf("https_proxy=%s", proxyURL),
|
||||
fmt.Sprintf("no_proxy=%s", noProxyList),
|
||||
fmt.Sprintf("SSL_CERT_FILE=%s", caCertPath),
|
||||
fmt.Sprintf("REQUESTS_CA_BUNDLE=%s", caCertPath),
|
||||
fmt.Sprintf("PIP_CERT=%s", caCertPath),
|
||||
|
||||
Reference in New Issue
Block a user