From f429fb557e9235515c4efa64d4c65e6fbe08c9a1 Mon Sep 17 00:00:00 2001 From: mkwcat Date: Tue, 6 Feb 2024 20:45:26 -0500 Subject: [PATCH] GPCM: Send regular keep alive commands --- gpcm/login.go | 12 +++++++++++- gpcm/main.go | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gpcm/login.go b/gpcm/login.go index 28ea90b..23a3be8 100644 --- a/gpcm/login.go +++ b/gpcm/login.go @@ -306,7 +306,17 @@ func (g *GameSpySession) login(command common.GameSpyCommand) { g.Conn.Write([]byte(payload)) - // g.sendFriendRequests() + // Now start sending keep alive packets every 5 minutes + go func() { + for { + time.Sleep(5 * time.Minute) + if !g.LoggedIn { + return + } + + g.Conn.Write([]byte(`\ka\\final\`)) + } + }() } func (g *GameSpySession) exLogin(command common.GameSpyCommand) { diff --git a/gpcm/main.go b/gpcm/main.go index 6d61324..d44dff6 100644 --- a/gpcm/main.go +++ b/gpcm/main.go @@ -122,6 +122,7 @@ func (g *GameSpySession) closeSession() { g.Conn.Close() if g.LoggedIn { + g.LoggedIn = false delete(sessions, g.User.ProfileId) } }