From 7c61f70590d39de1fc7a7c86da5717e270a0eea9 Mon Sep 17 00:00:00 2001 From: wish Date: Tue, 18 Feb 2025 03:16:18 +1100 Subject: [PATCH] add invalidateSessions --- server/channelserver/sys_channel_server.go | 11 +++++++++++ server/channelserver/sys_session.go | 4 ---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/server/channelserver/sys_channel_server.go b/server/channelserver/sys_channel_server.go index a1b2c093b..6b6404f52 100644 --- a/server/channelserver/sys_channel_server.go +++ b/server/channelserver/sys_channel_server.go @@ -207,6 +207,7 @@ func (s *Server) Start() error { go s.acceptClients() go s.manageSessions() + go s.invalidateSessions() // Start the discord bot for chat integration. if s.erupeConfig.Discord.Enabled && s.discordBot != nil { @@ -278,6 +279,16 @@ func (s *Server) manageSessions() { } } +func (s *Server) invalidateSessions() { + for _, session := range s.sessions { + if time.Now().Add(-30 * time.Second).After(session.lastPacket) { + s.logger.Info("Session timeout", zap.String("Name", session.Name)) + logoutPlayer(session) + } + } + time.Sleep(30 * time.Second) +} + // BroadcastMHF queues a MHFPacket to be sent to all sessions. func (s *Server) BroadcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) { // Broadcast the data. diff --git a/server/channelserver/sys_session.go b/server/channelserver/sys_session.go index a13d0d4ce..7bd2a42ce 100644 --- a/server/channelserver/sys_session.go +++ b/server/channelserver/sys_session.go @@ -174,10 +174,6 @@ func (s *Session) sendLoop() { func (s *Session) recvLoop() { for { - if time.Now().Add(-30 * time.Second).After(s.lastPacket) { - logoutPlayer(s) - return - } if s.closed { logoutPlayer(s) return