mirror of
https://github.com/RuoJi6/ARTEX.git
synced 2026-10-28 01:03:50 +08:00
1 parent
7f71f77d16
commit
80a085d157
5 files changed
+32
-5
No files matched your search
@@ -57,3 +57,24 @@ func TestSetUpstreamProxyStoreClear(t *testing.T) {
|
||||
t.Fatalf("invalid set mutated upstream to %v, want nil", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestProxyAddr(t *testing.T) {
|
||||
cases := []struct {
|
||||
addr string
|
||||
want string
|
||||
}{
|
||||
// Bare :port means "bind all interfaces" — the legacy default. The URL
|
||||
// agents consume must still point at loopback so they reach the local proxy.
|
||||
{":8788", "http://127.0.0.1:8788"},
|
||||
// Explicit loopback — the current default since #129 (open proxy exposure).
|
||||
{"127.0.0.1:8788", "http://127.0.0.1:8788"},
|
||||
// Explicit all-interface bind is still supported (remote capture via SSH).
|
||||
{"0.0.0.0:8788", "http://0.0.0.0:8788"},
|
||||
}
|
||||
for _, c := range cases {
|
||||
got := (&Traffic{addr: c.addr}).ProxyAddr()
|
||||
if got != c.want {
|
||||
t.Errorf("ProxyAddr(%q) = %q, want %q", c.addr, got, c.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
+8
-2
@@ -200,8 +200,14 @@ func hostOnly(hostport string) string {
|
||||
return hostport
|
||||
}
|
||||
|
||||
// ProxyAddr returns the address workers should set as HTTP(S)_PROXY.
|
||||
func (t *Traffic) ProxyAddr() string { return "http://127.0.0.1" + t.addr }
|
||||
// ProxyAddr returns the address workers should set as HTTP(S)_PROXY. A bare
|
||||
// ":port" means "bind all interfaces" (legacy default), so map it to loopback.
|
||||
func (t *Traffic) ProxyAddr() string {
|
||||
if strings.HasPrefix(t.addr, ":") {
|
||||
return "http://127.0.0.1" + t.addr
|
||||
}
|
||||
return "http://" + t.addr
|
||||
}
|
||||
|
||||
// SetUpstreamProxy points every captured request at a global egress proxy
|
||||
// (http/https/socks5, optional user:pass in the URL). An empty raw string clears
|
||||
|
||||
Reference in new issue
Block a user