QueryServer needs to be done outside of the lock (#996)

This commit is contained in:
Nate Brown 2023-10-17 15:43:51 -05:00 committed by GitHub
parent e78fe0b9ef
commit 50d6a1e8ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -318,13 +318,13 @@ func (hm *HandshakeManager) GetOrHandshake(vpnIp iputil.VpnIp, cacheCb func(*Hos
// StartHandshake will ensure a handshake is currently being attempted for the provided vpn ip
func (hm *HandshakeManager) StartHandshake(vpnIp iputil.VpnIp, cacheCb func(*HostInfo)) *HostInfo {
hm.Lock()
defer hm.Unlock()
if hostinfo, ok := hm.vpnIps[vpnIp]; ok {
// We are already trying to handshake with this vpn ip
if cacheCb != nil {
cacheCb(hostinfo)
}
hm.Unlock()
return hostinfo
}
@ -361,6 +361,7 @@ func (hm *HandshakeManager) StartHandshake(vpnIp iputil.VpnIp, cacheCb func(*Hos
}
}
hm.Unlock()
hm.lightHouse.QueryServer(vpnIp, hm.f)
return hostinfo
}