From f8f6308e92495cda41e7c1bea9b795652438fb75 Mon Sep 17 00:00:00 2001 From: nadoo <287492+nadoo@users.noreply.github.com> Date: Mon, 31 Jul 2017 19:29:43 +0800 Subject: [PATCH] strategy: fixed a bug in haproxy which actually act as a rrproxy. --- ss.go | 2 +- strategy.go | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ss.go b/ss.go index d85ecd7..df51774 100644 --- a/ss.go +++ b/ss.go @@ -19,7 +19,7 @@ type ss struct { func SSProxy(addr, method, pass string, upProxy Proxy) (Proxy, error) { ciph, err := core.PickCipher(method, nil, pass) if err != nil { - log.Fatal(err) + log.Fatalf("PickCipher for '%s', error: %s", method, err) } s := &ss{ diff --git a/strategy.go b/strategy.go index b1967f7..d61487c 100644 --- a/strategy.go +++ b/strategy.go @@ -75,7 +75,7 @@ func (p *rrProxy) Enabled() bool { return true } func (p *rrProxy) SetEnable(enable bool) {} func (p *rrProxy) Dial(network, addr string) (net.Conn, error) { - return p.NextProxy().Dial(network, addr) + return p.GetProxy(addr).Dial(network, addr) } // high availability proxy @@ -95,3 +95,7 @@ func (p *haProxy) GetProxy(dstAddr string) Proxy { } return proxy } + +func (p *haProxy) Dial(network, addr string) (net.Conn, error) { + return p.GetProxy(addr).Dial(network, addr) +}