|
@@ -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
|
|
// 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 {
|
|
func (hm *HandshakeManager) StartHandshake(vpnIp iputil.VpnIp, cacheCb func(*HostInfo)) *HostInfo {
|
|
hm.Lock()
|
|
hm.Lock()
|
|
- defer hm.Unlock()
|
|
|
|
|
|
|
|
if hostinfo, ok := hm.vpnIps[vpnIp]; ok {
|
|
if hostinfo, ok := hm.vpnIps[vpnIp]; ok {
|
|
// We are already trying to handshake with this vpn ip
|
|
// We are already trying to handshake with this vpn ip
|
|
if cacheCb != nil {
|
|
if cacheCb != nil {
|
|
cacheCb(hostinfo)
|
|
cacheCb(hostinfo)
|
|
}
|
|
}
|
|
|
|
+ hm.Unlock()
|
|
return hostinfo
|
|
return hostinfo
|
|
}
|
|
}
|
|
|
|
|
|
@@ -361,6 +361,7 @@ func (hm *HandshakeManager) StartHandshake(vpnIp iputil.VpnIp, cacheCb func(*Hos
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ hm.Unlock()
|
|
hm.lightHouse.QueryServer(vpnIp, hm.f)
|
|
hm.lightHouse.QueryServer(vpnIp, hm.f)
|
|
return hostinfo
|
|
return hostinfo
|
|
}
|
|
}
|