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) } }