Kaynağa Gözat

before removing a pending hostinfo in handshake_manager, make sure it's the one we wanted to delete (#1811)

Jack Doan 3 ay önce
ebeveyn
işleme
a99699e370
1 değiştirilmiş dosya ile 3 ekleme ve 1 silme
  1. 3 1
      handshake_manager.go

+ 3 - 1
handshake_manager.go

@@ -529,7 +529,9 @@ func (hm *HandshakeManager) DeleteHostInfo(hostinfo *HostInfo) {
 
 func (hm *HandshakeManager) unlockedDeleteHostInfo(hostinfo *HostInfo) {
 	for _, addr := range hostinfo.vpnAddrs {
-		delete(hm.vpnIps, addr)
+		if cur, ok := hm.vpnIps[addr]; ok && cur.hostinfo == hostinfo {
+			delete(hm.vpnIps, addr)
+		}
 	}
 
 	if len(hm.vpnIps) == 0 {