From 2fa50acc2d845bcbb960717becf3a4576b9d8541 Mon Sep 17 00:00:00 2001 From: Devin Carr Date: Mon, 13 Jun 2022 10:36:40 -0700 Subject: [PATCH] TUN-6384: Correct duplicate connection error to fetch new IP first (cherry picked from commit 76add5ca77a5d9fd1e474b325952ae7c678e44f1) --- supervisor/tunnel.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/supervisor/tunnel.go b/supervisor/tunnel.go index 8d3fe9f0..fcbace54 100644 --- a/supervisor/tunnel.go +++ b/supervisor/tunnel.go @@ -141,10 +141,11 @@ type DefaultAddrFallback struct { func (f DefaultAddrFallback) ShouldGetNewAddress(err error) (needsNewAddress bool, isConnectivityError bool) { switch err.(type) { case nil: // maintain current IP address - // Try the next address if it was a quic.IdleTimeoutError or - // dupConnRegisterTunnelError + // DupConnRegisterTunnelError should indicate to get a new address immediately + case connection.DupConnRegisterTunnelError: + return true, false + // Try the next address if it was a quic.IdleTimeoutError case *quic.IdleTimeoutError, - connection.DupConnRegisterTunnelError, edgediscovery.DialError, *connection.EdgeQuicDialError: // Wait for two failures before falling back to a new address