diff options
| author | oy <Tom_Adams@web.de> | 2011-12-29 23:36:53 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-12-29 23:36:53 +0100 |
| commit | b44ee3d9755ff35a6df1358dcfe85ce681bbe081 (patch) | |
| tree | a168de3012907094d550d22771b103c1f35b9fa8 /src/engine/server/server.h | |
| parent | 72d5ef329b1a0ec07f8fb6c5e23011b7e1a45b61 (diff) | |
| download | zcatch-b44ee3d9755ff35a6df1358dcfe85ce681bbe081.tar.gz zcatch-b44ee3d9755ff35a6df1358dcfe85ce681bbe081.zip | |
reworked ban system
Diffstat (limited to 'src/engine/server/server.h')
| -rw-r--r-- | src/engine/server/server.h | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/engine/server/server.h b/src/engine/server/server.h index 4c450a48..2ff06a05 100644 --- a/src/engine/server/server.h +++ b/src/engine/server/server.h @@ -5,6 +5,7 @@ #include <engine/server.h> + class CSnapIDPool { enum @@ -39,6 +40,25 @@ public: void FreeID(int ID); }; + +class CServerBan : public CNetBan +{ + class CServer *m_pServer; + + template<class T> int BanExt(T *pBanPool, const typename T::CDataType *pData, int Seconds, const char *pReason); + +public: + class CServer *Server() const { return m_pServer; } + + void Init(class IConsole *pConsole, class IStorage *pStorage, class CServer* pServer); + + int BanAddr(const NETADDR *pAddr, int Seconds, const char *pReason); + int BanRange(const CNetRange *pRange, int Seconds, const char *pReason); + + static void ConBanExt(class IConsole::IResult *pResult, void *pUser); +}; + + class CServer : public IServer { class IGameServer *m_pGameServer; @@ -114,6 +134,7 @@ public: CSnapIDPool m_IDPool; CNetServer m_NetServer; CEcon m_Econ; + CServerBan m_ServerBan; IEngineMap *m_pMap; @@ -184,13 +205,9 @@ public: void ProcessClientPacket(CNetChunk *pPacket); - void SendServerInfo(NETADDR *pAddr, int Token); + void SendServerInfo(const NETADDR *pAddr, int Token); void UpdateServerInfo(); - int BanAdd(NETADDR Addr, int Seconds, const char *pReason); - int BanRemove(NETADDR Addr); - int BanRemoveAll(); - void PumpNetwork(); char *GetMapName(); @@ -200,11 +217,7 @@ public: int Run(); static void ConKick(IConsole::IResult *pResult, void *pUser); - static void ConBan(IConsole::IResult *pResult, void *pUser); - static void ConUnban(IConsole::IResult *pResult, void *pUser); - static void ConUnbanAll(IConsole::IResult *pResult, void *pUser); - static void ConBans(IConsole::IResult *pResult, void *pUser); - static void ConStatus(IConsole::IResult *pResult, void *pUser); + static void ConStatus(IConsole::IResult *pResult, void *pUser); static void ConShutdown(IConsole::IResult *pResult, void *pUser); static void ConRecord(IConsole::IResult *pResult, void *pUser); static void ConStopRecord(IConsole::IResult *pResult, void *pUser); |