diff --git a/strategy/ha.go b/strategy/ha.go index f66f32b..5bd2c4d 100644 --- a/strategy/ha.go +++ b/strategy/ha.go @@ -1,8 +1,6 @@ package strategy import ( - "net" - "github.com/nadoo/glider/proxy" ) @@ -14,18 +12,10 @@ func newHADialer(dialers []*proxy.Forwarder, webhost string, duration int) proxy return &haDialer{rrDialer: newRRDialer(dialers, webhost, duration)} } -func (ha *haDialer) nextDialer(dstAddr string) *proxy.Forwarder { +func (ha *haDialer) NextDialer(dstAddr string) proxy.Dialer { d := ha.fwdrs[ha.Index()] if !d.Enabled() || d.Priority() < ha.Priority() { d = ha.nextDialer(dstAddr) } return d } - -func (ha *haDialer) Dial(network, addr string) (net.Conn, error) { - return ha.nextDialer(addr).Dial(network, addr) -} - -func (ha *haDialer) DialUDP(network, addr string) (pc net.PacketConn, writeTo net.Addr, err error) { - return ha.nextDialer(addr).DialUDP(network, addr) -} diff --git a/strategy/lha.go b/strategy/lha.go index c761865..8c0169f 100644 --- a/strategy/lha.go +++ b/strategy/lha.go @@ -1,8 +1,6 @@ package strategy import ( - "net" - "github.com/nadoo/glider/proxy" ) @@ -14,7 +12,7 @@ func newLHADialer(dialers []*proxy.Forwarder, webhost string, duration int) prox return &lhaDialer{rrDialer: newRRDialer(dialers, webhost, duration)} } -func (lha *lhaDialer) nextDialer(dstAddr string) *proxy.Forwarder { +func (lha *lhaDialer) NextDialer(dstAddr string) proxy.Dialer { idx := lha.Index() var lowest int64 for i, fwder := range lha.fwdrs { @@ -36,11 +34,3 @@ func (lha *lhaDialer) nextDialer(dstAddr string) *proxy.Forwarder { lha.SetIndex(idx) return lha.fwdrs[idx] } - -func (lha *lhaDialer) Dial(network, addr string) (net.Conn, error) { - return lha.nextDialer(addr).Dial(network, addr) -} - -func (lha *lhaDialer) DialUDP(network, addr string) (pc net.PacketConn, writeTo net.Addr, err error) { - return lha.nextDialer(addr).DialUDP(network, addr) -} diff --git a/strategy/rr.go b/strategy/rr.go index 34713d2..ef5e514 100644 --- a/strategy/rr.go +++ b/strategy/rr.go @@ -46,11 +46,11 @@ func newRRDialer(fwdrs []*proxy.Forwarder, website string, interval int) *rrDial func (rr *rrDialer) Addr() string { return "STRATEGY" } func (rr *rrDialer) Dial(network, addr string) (net.Conn, error) { - return rr.nextDialer(addr).Dial(network, addr) + return rr.NextDialer(addr).Dial(network, addr) } func (rr *rrDialer) DialUDP(network, addr string) (pc net.PacketConn, writeTo net.Addr, err error) { - return rr.nextDialer(addr).DialUDP(network, addr) + return rr.NextDialer(addr).DialUDP(network, addr) } func (rr *rrDialer) NextDialer(dstAddr string) proxy.Dialer { return rr.nextDialer(dstAddr) }