From a3aee2b33a6178dff512a18c76cf08df98f6435a Mon Sep 17 00:00:00 2001 From: lotodore Date: Wed, 5 Mar 2008 18:41:25 +0000 Subject: [PATCH] Reset network activity timeout only for certain packets. --- src/net/common/servergamestate.cpp | 2 ++ src/net/common/serverlobbythread.cpp | 3 +++ src/net/common/sessionmanager.cpp | 2 -- src/net/netpacket.h | 11 +++++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/net/common/servergamestate.cpp b/src/net/common/servergamestate.cpp index 89571561..1d3a4504 100644 --- a/src/net/common/servergamestate.cpp +++ b/src/net/common/servergamestate.cpp @@ -165,6 +165,8 @@ AbstractServerGameStateReceiving::Process(ServerGameThread &server) // Process packet if one was received. if (packet.get()) { + if (packet->IsClientActivity()) + session.sessionData->ResetActivityTimer(); if (packet->ToNetPacketRetrievePlayerInfo()) { // Delegate to Lobby. diff --git a/src/net/common/serverlobbythread.cpp b/src/net/common/serverlobbythread.cpp index dd5009f9..4675d3ba 100644 --- a/src/net/common/serverlobbythread.cpp +++ b/src/net/common/serverlobbythread.cpp @@ -358,6 +358,9 @@ ServerLobbyThread::ProcessLoop() } if (packet.get()) { + if (packet->IsClientActivity()) + session.sessionData->ResetActivityTimer(); + if (session.sessionData->GetState() == SessionData::Init) { if (packet->ToNetPacketInit()) diff --git a/src/net/common/sessionmanager.cpp b/src/net/common/sessionmanager.cpp index a7a61bb8..1ea20992 100644 --- a/src/net/common/sessionmanager.cpp +++ b/src/net/common/sessionmanager.cpp @@ -147,8 +147,6 @@ SessionManager::Select(unsigned timeoutMsec) } } } - if (retSession.sessionData.get()) - retSession.sessionData->ResetActivityTimer(); return retSession; } diff --git a/src/net/netpacket.h b/src/net/netpacket.h index 605ee471..46ebab2f 100644 --- a/src/net/netpacket.h +++ b/src/net/netpacket.h @@ -157,6 +157,8 @@ public: virtual const NetPacketChatText *ToNetPacketChatText() const; virtual const NetPacketError *ToNetPacketError() const; + virtual bool IsClientActivity() const {return false;} + protected: NetPacket &operator=(const NetPacket& right); // not allowed @@ -197,6 +199,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketInit *ToNetPacketInit() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -557,6 +560,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketCreateGame *ToNetPacketCreateGame() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -581,6 +585,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketJoinGame *ToNetPacketJoinGame() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -722,6 +727,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketKickPlayer *ToNetPacketKickPlayer() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -738,6 +744,7 @@ public: virtual boost::shared_ptr Clone() const; virtual const NetPacketLeaveCurrentGame *ToNetPacketLeaveCurrentGame() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -761,6 +768,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketStartEvent *ToNetPacketStartEvent() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -882,6 +890,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketPlayersAction *ToNetPacketPlayersAction() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -1207,6 +1216,7 @@ public: virtual boost::shared_ptr Clone() const; virtual const NetPacketResetTimeout *ToNetPacketResetTimeout() const; + virtual bool IsClientActivity() const {return true;} protected: @@ -1230,6 +1240,7 @@ public: void GetData(Data &outData) const; virtual const NetPacketSendChatText *ToNetPacketSendChatText() const; + virtual bool IsClientActivity() const {return true;} protected: