mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-09-01 16:01:55 +03:00
Add tests for circuit breaker
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user