Add tests for circuit breaker

This commit is contained in:
9seconds
2021-03-09 18:21:43 +03:00
parent 7c43a4b0b7
commit c8914f90db
+3 -9
View File
@@ -2,6 +2,7 @@ package network
import ( import (
"context" "context"
"fmt"
"math/rand" "math/rand"
"net" "net"
"net/url" "net/url"
@@ -31,19 +32,12 @@ func (l loadBalancedDialer) DialContext(ctx context.Context, network, address st
} }
func NewLoadBalancedDialer(baseDialer Dialer, proxyURLs []*url.URL) (Dialer, error) { func NewLoadBalancedDialer(baseDialer Dialer, proxyURLs []*url.URL) (Dialer, error) {
switch len(proxyURLs) { var dialers []Dialer
case 0:
return baseDialer, nil
case 1:
return NewSocks5Dialer(baseDialer, proxyURLs[0])
}
dialers := []Dialer{}
for _, u := range proxyURLs { for _, u := range proxyURLs {
dialer, err := NewSocks5Dialer(newProxyDialer(baseDialer, u), u) dialer, err := NewSocks5Dialer(newProxyDialer(baseDialer, u), u)
if err != nil { if err != nil {
return nil, err return nil, fmt.Errorf("cannot build dialer for %s: %w", u.String(), err)
} }
dialers = append(dialers, dialer) dialers = append(dialers, dialer)