Browse Source

use queried hostmap info for deletion logging

Jack Doan 4 tháng trước cách đây
mục cha
commit
87a4ec7d90
1 tập tin đã thay đổi với 8 bổ sung19 xóa
  1. 8 19
      connection_manager.go

+ 8 - 19
connection_manager.go

@@ -45,7 +45,7 @@ type connectionManager struct {
 	relayUsedLock *sync.RWMutex
 
 	// Track last communication with hosts
-	lastCommMap       map[uint32]*LastCommunication
+	lastCommMap       map[uint32]time.Time
 	lastCommLock      *sync.RWMutex
 	inactivityTimer   *LockingTimerWheel[uint32]
 	inactivityTimeout time.Duration
@@ -78,7 +78,7 @@ func newConnectionManager(ctx context.Context, l *logrus.Logger, intf *Interface
 		outLock:                 &sync.RWMutex{},
 		relayUsed:               make(map[uint32]struct{}),
 		relayUsedLock:           &sync.RWMutex{},
-		lastCommMap:             make(map[uint32]*LastCommunication),
+		lastCommMap:             make(map[uint32]time.Time),
 		lastCommLock:            &sync.RWMutex{},
 		inactivityTimeout:       1 * time.Minute, // Default inactivity timeout: 10 minutes
 		trafficTimer:            NewLockingTimerWheel[uint32](time.Millisecond*500, max),
@@ -107,18 +107,7 @@ func (n *connectionManager) updateLastCommunication(localIndex uint32) {
 
 	now := time.Now()
 	n.lastCommLock.Lock()
-	lastComm, exists := n.lastCommMap[localIndex]
-	if !exists {
-		// First time we've seen this host
-		lastComm = &LastCommunication{
-			timestamp: now,
-			vpnIp:     hostInfo.vpnIp,
-		}
-		n.lastCommMap[localIndex] = lastComm
-	} else {
-		// Update existing record
-		lastComm.timestamp = now
-	}
+	n.lastCommMap[localIndex] = now
 	n.lastCommLock.Unlock()
 
 	// Reset the inactivity timer for this host
@@ -229,7 +218,7 @@ func (n *connectionManager) checkInactiveTunnels() {
 		}
 
 		// Calculate inactivity duration
-		inactiveDuration := now.Sub(lastComm.timestamp)
+		inactiveDuration := now.Sub(lastComm)
 
 		// Check if we've exceeded the inactivity timeout
 		if inactiveDuration >= n.inactivityTimeout {
@@ -244,7 +233,7 @@ func (n *connectionManager) checkInactiveTunnels() {
 			}
 
 			// Log the inactivity and drop the tunnel
-			n.l.WithField("vpnIp", lastComm.vpnIp).
+			n.l.WithField("vpnIp", hostInfo.vpnAddrs[0]).
 				WithField("localIndex", localIndex).
 				WithField("inactiveDuration", inactiveDuration).
 				WithField("timeout", n.inactivityTimeout).
@@ -311,7 +300,7 @@ func (n *connectionManager) ReloadConfig(c *config.C) {
 		for localIndex, lastComm := range n.lastCommMap {
 			// Calculate remaining time based on last communication
 			now := time.Now()
-			elapsed := now.Sub(lastComm.timestamp)
+			elapsed := now.Sub(lastComm)
 
 			// If the elapsed time exceeds the new timeout, this will be caught
 			// in the next inactivity check. Otherwise, add with remaining time.
@@ -683,12 +672,12 @@ func (n *connectionManager) sendPunch(hostinfo *HostInfo) {
 	if n.punchy.GetTargetEverything() {
 		hostinfo.remotes.ForEach(n.hostMap.GetPreferredRanges(), func(addr netip.AddrPort, preferred bool) {
 			n.metricsTxPunchy.Inc(1)
-			n.intf.outside.WriteTo([]byte{1}, addr)
+			//n.intf.outside.WriteTo([]byte{1}, addr)
 		})
 
 	} else if hostinfo.remote.IsValid() {
 		n.metricsTxPunchy.Inc(1)
-		n.intf.outside.WriteTo([]byte{1}, hostinfo.remote)
+		//n.intf.outside.WriteTo([]byte{1}, hostinfo.remote)
 	}
 }