chore: adjust error log
This commit is contained in:
parent
d7f42a40a9
commit
de80454195
1 changed files with 14 additions and 7 deletions
|
@ -180,14 +180,17 @@ func dualStackDialContext(ctx context.Context, dialFn dialFunc, network string,
|
||||||
go racer(ipv4s, preferIPVersion != 6)
|
go racer(ipv4s, preferIPVersion != 6)
|
||||||
go racer(ipv6s, preferIPVersion != 4)
|
go racer(ipv6s, preferIPVersion != 4)
|
||||||
var fallback dialResult
|
var fallback dialResult
|
||||||
var err error
|
var errs []error
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
if fallback.error == nil && fallback.Conn != nil {
|
if fallback.error == nil && fallback.Conn != nil {
|
||||||
return fallback.Conn, nil
|
return fallback.Conn, nil
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("dual stack connect failed: %w", err)
|
if res, ok := <-results; ok && res.error == nil {
|
||||||
|
return res.Conn, nil
|
||||||
|
}
|
||||||
|
return nil, errorsJoin(errs...)
|
||||||
case <-fallbackTicker.C:
|
case <-fallbackTicker.C:
|
||||||
if fallback.error == nil && fallback.Conn != nil {
|
if fallback.error == nil && fallback.Conn != nil {
|
||||||
return fallback.Conn, nil
|
return fallback.Conn, nil
|
||||||
|
@ -199,7 +202,11 @@ func dualStackDialContext(ctx context.Context, dialFn dialFunc, network string,
|
||||||
}
|
}
|
||||||
fallback = res
|
fallback = res
|
||||||
} else {
|
} else {
|
||||||
err = res.error
|
if res.isPrimary {
|
||||||
|
errs = append([]error{fmt.Errorf("connect failed: %w", res.error)}, errs...)
|
||||||
|
} else {
|
||||||
|
errs = append(errs, fmt.Errorf("connect failed: %w", res.error))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -230,12 +237,12 @@ func parallelDialContext(ctx context.Context, network string, ips []netip.Addr,
|
||||||
for _, ip := range ips {
|
for _, ip := range ips {
|
||||||
go racer(ctx, ip)
|
go racer(ctx, ip)
|
||||||
}
|
}
|
||||||
var err error
|
var errs []error
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
if err != nil {
|
if len(errs) > 0 {
|
||||||
return nil, err
|
return nil, errorsJoin(errs...)
|
||||||
}
|
}
|
||||||
if ctx.Err() == context.DeadlineExceeded {
|
if ctx.Err() == context.DeadlineExceeded {
|
||||||
return nil, os.ErrDeadlineExceeded
|
return nil, os.ErrDeadlineExceeded
|
||||||
|
@ -245,7 +252,7 @@ func parallelDialContext(ctx context.Context, network string, ips []netip.Addr,
|
||||||
if res.error == nil {
|
if res.error == nil {
|
||||||
return res.Conn, nil
|
return res.Conn, nil
|
||||||
}
|
}
|
||||||
err = res.error
|
errs = append(errs, res.error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue