From fbd32c76214d89596bea68efe81fd47a13d317af Mon Sep 17 00:00:00 2001 From: Marcin <120790937+mar0ls@users.noreply.github.com> Date: Sat, 4 Jul 2026 21:03:37 +0200 Subject: [PATCH] fix(darwin): disable PAC mode on set/unset global Ensure manual/global proxy operations turn off autoproxy state on macOS so get() no longer returns stale PAC after unset. --- sysproxy_darwin.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sysproxy_darwin.go b/sysproxy_darwin.go index 8aaa14e..8425d4b 100644 --- a/sysproxy_darwin.go +++ b/sysproxy_darwin.go @@ -19,6 +19,8 @@ func setGlobal(ctx context.Context, p *proxy) error { return err } for _, svc := range services { + // Ensure manual proxy mode is authoritative and PAC does not stay active. + _ = runNetworkSetup(ctx, "-setautoproxystate", svc, "off") if p.user != "" { _ = runNetworkSetup(ctx, "-setwebproxy", svc, p.host, p.port, "on", p.user, p.pass) _ = runNetworkSetup(ctx, "-setsecurewebproxy", svc, p.host, p.port, "on", p.user, p.pass) @@ -41,6 +43,8 @@ func unsetGlobal(ctx context.Context) error { return err } for _, svc := range services { + // Unset should clear both manual and auto-proxy modes. + _ = runNetworkSetup(ctx, "-setautoproxystate", svc, "off") _ = runNetworkSetup(ctx, "-setwebproxystate", svc, "off") _ = runNetworkSetup(ctx, "-setsecurewebproxystate", svc, "off") _ = runNetworkSetup(ctx, "-setsocksfirewallproxystate", svc, "off") @@ -184,6 +188,8 @@ func setGlobalMulti(ctx context.Context, cfg ProxyConfig) error { return err } for _, svc := range services { + // Multi-protocol manual config should disable PAC mode. + _ = runNetworkSetup(ctx, "-setautoproxystate", svc, "off") if cfg.HTTP != "" { _ = runNetworkSetup(ctx, "-setwebproxy", svc, hostFromURL(cfg.HTTP), portFromURL(cfg.HTTP)) _ = runNetworkSetup(ctx, "-setwebproxystate", svc, "on")