Kaynağa Gözat

Add tests for circuit breaker

tags/v2.0.0-rc1
9seconds 5 yıl önce
ebeveyn
işleme
c8914f90db
1 değiştirilmiş dosya ile 3 ekleme ve 9 silme
  1. 3
    9
      mtglib/network/load_balanced.go

+ 3
- 9
mtglib/network/load_balanced.go Dosyayı Görüntüle

2
 
2
 
3
 import (
3
 import (
4
 	"context"
4
 	"context"
5
+	"fmt"
5
 	"math/rand"
6
 	"math/rand"
6
 	"net"
7
 	"net"
7
 	"net/url"
8
 	"net/url"
31
 }
32
 }
32
 
33
 
33
 func NewLoadBalancedDialer(baseDialer Dialer, proxyURLs []*url.URL) (Dialer, error) {
34
 func NewLoadBalancedDialer(baseDialer Dialer, proxyURLs []*url.URL) (Dialer, error) {
34
-	switch len(proxyURLs) {
35
-	case 0:
36
-		return baseDialer, nil
37
-	case 1:
38
-		return NewSocks5Dialer(baseDialer, proxyURLs[0])
39
-	}
40
-
41
-	dialers := []Dialer{}
35
+	var dialers []Dialer
42
 
36
 
43
 	for _, u := range proxyURLs {
37
 	for _, u := range proxyURLs {
44
 		dialer, err := NewSocks5Dialer(newProxyDialer(baseDialer, u), u)
38
 		dialer, err := NewSocks5Dialer(newProxyDialer(baseDialer, u), u)
45
 		if err != nil {
39
 		if err != nil {
46
-			return nil, err
40
+			return nil, fmt.Errorf("cannot build dialer for %s: %w", u.String(), err)
47
 		}
41
 		}
48
 
42
 
49
 		dialers = append(dialers, dialer)
43
 		dialers = append(dialers, dialer)

Loading…
İptal
Kaydet