set "happy-eyeballs" disabled by default

This commit is contained in:
patterniha 2025-06-07 15:08:03 +03:30
parent 4ca6302ad4
commit 3fd89288fb
4 changed files with 14 additions and 20 deletions

View file

@ -255,7 +255,7 @@ func DialSystem(ctx context.Context, dest net.Destination, sockopt *SocketConfig
if sockopt.DomainStrategy.forceIP() {
return nil, err
}
} else if (sockopt.HappyEyeballs != nil && (sockopt.HappyEyeballs.TryDelayMs == 0 || sockopt.HappyEyeballs.MaxConcurrentTry == 0)) || len(ips) < 2 || len(sockopt.DialerProxy) > 0 || dest.Network != net.Network_TCP {
} else if sockopt.HappyEyeballs == nil || sockopt.HappyEyeballs.TryDelayMs == 0 || sockopt.HappyEyeballs.MaxConcurrentTry == 0 || len(ips) < 2 || len(sockopt.DialerProxy) > 0 || dest.Network != net.Network_TCP {
dest.Address = net.IPAddress(ips[dice.Roll(len(ips))])
errors.LogInfo(ctx, "replace destination with "+dest.String())
} else {

View file

@ -17,16 +17,10 @@ func TcpRaceDial(ctx context.Context, src net.Address, ips []net.IP, port net.Po
panic("at least 2 ips is required to race dial")
}
prioritizeIPv6 := false
interleave := uint32(1)
tryDelayMs := 250 * time.Millisecond
maxConcurrentTry := uint32(4)
if sockopt.HappyEyeballs != nil {
prioritizeIPv6 = sockopt.HappyEyeballs.PrioritizeIpv6
interleave = sockopt.HappyEyeballs.Interleave
tryDelayMs = time.Duration(sockopt.HappyEyeballs.TryDelayMs) * time.Millisecond
maxConcurrentTry = sockopt.HappyEyeballs.MaxConcurrentTry
}
prioritizeIPv6 := sockopt.HappyEyeballs.PrioritizeIpv6
interleave := sockopt.HappyEyeballs.Interleave
tryDelayMs := time.Duration(sockopt.HappyEyeballs.TryDelayMs) * time.Millisecond
maxConcurrentTry := sockopt.HappyEyeballs.MaxConcurrentTry
ips = sortIPs(ips, prioritizeIPv6, interleave)
newCtx, cancel := context.WithCancel(ctx)