mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-20 01:06:45 +00:00
Fix error handling in openConnVia function (#2560)
This commit is contained in:
@@ -29,6 +29,7 @@ var (
|
|||||||
type RelayTrack struct {
|
type RelayTrack struct {
|
||||||
sync.RWMutex
|
sync.RWMutex
|
||||||
relayClient *Client
|
relayClient *Client
|
||||||
|
err error
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRelayTrack() *RelayTrack {
|
func NewRelayTrack() *RelayTrack {
|
||||||
@@ -235,6 +236,9 @@ func (m *Manager) openConnVia(serverAddress, peerKey string) (net.Conn, error) {
|
|||||||
rt.RLock()
|
rt.RLock()
|
||||||
m.relayClientsMutex.RUnlock()
|
m.relayClientsMutex.RUnlock()
|
||||||
defer rt.RUnlock()
|
defer rt.RUnlock()
|
||||||
|
if rt.err != nil {
|
||||||
|
return nil, rt.err
|
||||||
|
}
|
||||||
return rt.relayClient.OpenConn(peerKey)
|
return rt.relayClient.OpenConn(peerKey)
|
||||||
}
|
}
|
||||||
m.relayClientsMutex.RUnlock()
|
m.relayClientsMutex.RUnlock()
|
||||||
@@ -247,6 +251,9 @@ func (m *Manager) openConnVia(serverAddress, peerKey string) (net.Conn, error) {
|
|||||||
rt.RLock()
|
rt.RLock()
|
||||||
m.relayClientsMutex.Unlock()
|
m.relayClientsMutex.Unlock()
|
||||||
defer rt.RUnlock()
|
defer rt.RUnlock()
|
||||||
|
if rt.err != nil {
|
||||||
|
return nil, rt.err
|
||||||
|
}
|
||||||
return rt.relayClient.OpenConn(peerKey)
|
return rt.relayClient.OpenConn(peerKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,6 +266,7 @@ func (m *Manager) openConnVia(serverAddress, peerKey string) (net.Conn, error) {
|
|||||||
relayClient := NewClient(m.ctx, serverAddress, m.tokenStore, m.peerID)
|
relayClient := NewClient(m.ctx, serverAddress, m.tokenStore, m.peerID)
|
||||||
err := relayClient.Connect()
|
err := relayClient.Connect()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
rt.err = err
|
||||||
rt.Unlock()
|
rt.Unlock()
|
||||||
m.relayClientsMutex.Lock()
|
m.relayClientsMutex.Lock()
|
||||||
delete(m.relayClients, serverAddress)
|
delete(m.relayClients, serverAddress)
|
||||||
|
|||||||
Reference in New Issue
Block a user