diff --git a/Tun/Punchnet/SessionManager.swift b/Tun/Punchnet/SessionManager.swift index e6e84d3..d325cab 100644 --- a/Tun/Punchnet/SessionManager.swift +++ b/Tun/Punchnet/SessionManager.swift @@ -45,24 +45,25 @@ actor SessionManager { func getSession(toAddress: Data) -> Session? { let timestamp = Int32(Date().timeIntervalSince1970) - guard var sessions = self.sessions[toAddress] else { + guard var peerSessions = self.sessions[toAddress] else { return nil } - sessions = sessions.filter { $0.value.lastTimestamp + ttl >= timestamp } - guard !sessions.isEmpty else { + peerSessions = peerSessions.filter { $0.value.lastTimestamp + ttl >= timestamp } + guard !peerSessions.isEmpty else { self.sessions.removeValue(forKey: toAddress) return nil } - guard var session = self.selectSession(in: sessions) else { - self.sessions[toAddress] = sessions + guard var session = self.selectSession(in: peerSessions) else { + self.sessions[toAddress] = peerSessions return nil } session.updateLastTimestamp(timestamp) - sessions[session.addressType] = session - self.sessions[toAddress] = sessions + peerSessions[session.addressType] = session + + self.sessions[toAddress] = peerSessions return session }