diff options
| author | Learath2 <emir1998@gmail.com> | 2011-12-26 23:07:57 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-12-29 23:53:07 +0100 |
| commit | 81e6cf6f83b8f45705f4c2a76ca4a1e647a3c4a2 (patch) | |
| tree | a6a8a9344502c0335316c03895695544191264f2 /src/engine/server | |
| parent | b44ee3d9755ff35a6df1358dcfe85ce681bbe081 (diff) | |
| download | zcatch-81e6cf6f83b8f45705f4c2a76ca4a1e647a3c4a2.tar.gz zcatch-81e6cf6f83b8f45705f4c2a76ca4a1e647a3c4a2.zip | |
Added logout command. Closes #903
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/server.cpp | 17 | ||||
| -rw-r--r-- | src/engine/server/server.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index 9587b94c..9bb36b74 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -1507,6 +1507,22 @@ void CServer::ConMapReload(IConsole::IResult *pResult, void *pUser) ((CServer *)pUser)->m_MapReload = 1; } +void CServer::ConLogout(IConsole::IResult *pResult, void *pUser) +{ + CServer *pServer = (CServer *)pUser; + + CMsgPacker Msg(NETMSG_RCON_AUTH_STATUS); + Msg.AddInt(0); //authed + Msg.AddInt(0); //cmdlist + pServer->SendMsgEx(&Msg, MSGFLAG_VITAL, pServer->m_RconClientID, true); + + pServer->m_aClients[pServer->m_RconClientID].m_Authed = AUTHED_NO; + pServer->SendRconLine(pServer->m_RconClientID, "You've logged out"); + char aBuf[32]; + str_format(aBuf, sizeof(aBuf), "ClientID=%d logged out", pServer->m_RconClientID); + pServer->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", aBuf); +} + void CServer::ConchainSpecialInfoupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData) { pfnCallback(pResult, pCallbackUserData); @@ -1567,6 +1583,7 @@ void CServer::RegisterCommands() Console()->Register("kick", "i?r", CFGFLAG_SERVER, ConKick, this, "Kick player with specified id for any reason"); Console()->Register("status", "", CFGFLAG_SERVER, ConStatus, this, "List players"); Console()->Register("shutdown", "", CFGFLAG_SERVER, ConShutdown, this, "Shut down"); + Console()->Register("logout", "", CFGFLAG_SERVER, ConLogout, this, "Logs you out of Rcon"); Console()->Register("record", "?s", CFGFLAG_SERVER|CFGFLAG_STORE, ConRecord, this, "Record to a file"); Console()->Register("stoprecord", "", CFGFLAG_SERVER, ConStopRecord, this, "Stop recording"); diff --git a/src/engine/server/server.h b/src/engine/server/server.h index 2ff06a05..fe79a3da 100644 --- a/src/engine/server/server.h +++ b/src/engine/server/server.h @@ -222,6 +222,7 @@ public: static void ConRecord(IConsole::IResult *pResult, void *pUser); static void ConStopRecord(IConsole::IResult *pResult, void *pUser); static void ConMapReload(IConsole::IResult *pResult, void *pUser); + static void ConLogout(IConsole::IResult *pResult, void *pUser); static void ConchainSpecialInfoupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData); static void ConchainMaxclientsperipUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData); static void ConchainModCommandUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData); |