From 11e0c73ffd23a506c68ae351641a7ca74085ca81 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 24 Sep 2013 20:52:37 +0200 Subject: Implemented basic HTTP message header parsing. --- source/Root.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h index 194b1cbb5..48a3a760c 100644 --- a/source/Root.h +++ b/source/Root.h @@ -2,6 +2,7 @@ #pragma once #include "Authenticator.h" +#include "WebServer.h" @@ -141,6 +142,7 @@ private: cWebAdmin * m_WebAdmin; cPluginManager * m_PluginManager; cAuthenticator m_Authenticator; + cWebServer m_WebServer; cMCLogger * m_Log; -- cgit v1.2.3 From f4efcb90808603bbfce5a149f5490bd6fceb880f Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Fri, 27 Sep 2013 18:14:26 +0200 Subject: Rewritten HTTPServer to split into cHTTPConnection, cHTTPRequest and cHTTPResponse classes. --- source/Root.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h index 48a3a760c..e5197ce2b 100644 --- a/source/Root.h +++ b/source/Root.h @@ -2,7 +2,7 @@ #pragma once #include "Authenticator.h" -#include "WebServer.h" +#include "HTTPServer/HTTPServer.h" @@ -142,7 +142,7 @@ private: cWebAdmin * m_WebAdmin; cPluginManager * m_PluginManager; cAuthenticator m_Authenticator; - cWebServer m_WebServer; + cHTTPServer m_HTTPServer; cMCLogger * m_Log; -- cgit v1.2.3 From a120507be027ba18d5443e76061b47e0c624f229 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 8 Oct 2013 20:12:34 +0200 Subject: Implemented the two memory-statistics functions in cRoot. This fixes #185. cWebAdmin::GetMemoryUsage() is accessible but deprecated (with a warning output to the screen). --- source/Root.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h index e5197ce2b..2b15d3461 100644 --- a/source/Root.h +++ b/source/Root.h @@ -105,8 +105,18 @@ public: /// Finds a player from a partial or complete player name and calls the callback - case-insensitive bool FindAndDoWithPlayer(const AString & a_PlayerName, cPlayerListCallback & a_Callback); // >> EXPORTED IN MANUALBINDINGS << + // tolua_begin + /// Returns the textual description of the protocol version: 49 -> "1.4.4". Provided specifically for Lua API - static AString GetProtocolVersionTextFromInt(int a_ProtocolVersionNum); // tolua_export + static AString GetProtocolVersionTextFromInt(int a_ProtocolVersionNum); + + /// Returns the amount of virtual RAM used, in KiB. Returns a negative number on error + static int GetVirtualRAMUsage(void); + + /// Returns the amount of virtual RAM used, in KiB. Returns a negative number on error + static int GetPhysicalRAMUsage(void); + + // tolua_end private: class cCommand -- cgit v1.2.3 From d3db97301b58f761b5754224d4dad4eff49cafbf Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 23 Oct 2013 11:06:39 +0200 Subject: Removed cRoot:m_PrimaryServerVersion from Lua API. We have the accessor methods for it. --- source/Root.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h index 2b15d3461..c05b29d14 100644 --- a/source/Root.h +++ b/source/Root.h @@ -32,10 +32,7 @@ typedef cItemCallback cWorldListCallback; class cRoot // tolua_export { // tolua_export public: - /// The version of the protocol that is primary for the server (reported in the server list). All versions are still supported. - int m_PrimaryServerVersion; // tolua_export - - static cRoot* Get() { return s_Root; } // tolua_export + static cRoot * Get() { return s_Root; } // tolua_export cRoot(void); ~cRoot(); @@ -55,7 +52,7 @@ public: int GetPrimaryServerVersion(void) const { return m_PrimaryServerVersion; } // tolua_export void SetPrimaryServerVersion(int a_Version) { m_PrimaryServerVersion = a_Version; } // tolua_export - cMonsterConfig * GetMonsterConfig() { return m_MonsterConfig; } + cMonsterConfig * GetMonsterConfig(void) { return m_MonsterConfig; } cGroupManager * GetGroupManager (void) { return m_GroupManager; } // tolua_export cCraftingRecipes * GetCraftingRecipes(void) { return m_CraftingRecipes; } // tolua_export @@ -135,6 +132,9 @@ private: typedef std::map WorldMap; typedef std::vector cCommandQueue; + /// The version of the protocol that is primary for the server (reported in the server list). All versions are still supported. + int m_PrimaryServerVersion; + cWorld * m_pDefaultWorld; WorldMap m_WorldsByName; -- cgit v1.2.3 From 77661f4c594190ff93de4924d62aaac9e112e8a2 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sat, 26 Oct 2013 17:08:28 +0200 Subject: Both the LoadWorlds() function and cAuthenticator now use the cIniFile object from the Root::Start() function. --- source/Root.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h index c05b29d14..6bd8217d9 100644 --- a/source/Root.h +++ b/source/Root.h @@ -162,7 +162,7 @@ private: void LoadGlobalSettings(); /// Loads the worlds from settings.ini, creates the worldmap - void LoadWorlds(void); + void LoadWorlds(cIniFile IniFile); /// Starts each world's life void StartWorlds(void); -- cgit v1.2.3 From cb06f35cb80c2162c3b1e9e329fc81b5d8b417da Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sat, 26 Oct 2013 19:47:12 +0200 Subject: Changed "cIniFile IniFile" to cIniFile & IniFile" --- source/Root.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h index 6bd8217d9..175084c53 100644 --- a/source/Root.h +++ b/source/Root.h @@ -162,7 +162,7 @@ private: void LoadGlobalSettings(); /// Loads the worlds from settings.ini, creates the worldmap - void LoadWorlds(cIniFile IniFile); + void LoadWorlds(cIniFile & IniFile); /// Starts each world's life void StartWorlds(void); -- cgit v1.2.3 From 675b4aa878f16291ce33fced48a2bc7425f635ae Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Sun, 24 Nov 2013 14:19:41 +0000 Subject: Moved source to src --- source/Root.h | 186 ---------------------------------------------------------- 1 file changed, 186 deletions(-) delete mode 100644 source/Root.h (limited to 'source/Root.h') diff --git a/source/Root.h b/source/Root.h deleted file mode 100644 index 175084c53..000000000 --- a/source/Root.h +++ /dev/null @@ -1,186 +0,0 @@ - -#pragma once - -#include "Authenticator.h" -#include "HTTPServer/HTTPServer.h" - - - - - -// fwd: -class cThread; -class cMonsterConfig; -class cGroupManager; -class cCraftingRecipes; -class cFurnaceRecipe; -class cWebAdmin; -class cPluginManager; -class cServer; -class cWorld; -class cPlayer; -class cCommandOutputCallback ; - -typedef cItemCallback cPlayerListCallback; -typedef cItemCallback cWorldListCallback; - - - - - -/// The root of the object hierarchy -class cRoot // tolua_export -{ // tolua_export -public: - static cRoot * Get() { return s_Root; } // tolua_export - - cRoot(void); - ~cRoot(); - - void Start(void); - - cServer * GetServer(void) { return m_Server; } // tolua_export - cWorld * GetDefaultWorld(void); // tolua_export - cWorld * GetWorld(const AString & a_WorldName); // tolua_export - - /// Calls the callback for each world; returns true if the callback didn't abort (return true) - bool ForEachWorld(cWorldListCallback & a_Callback); // >> Exported in ManualBindings << - - /// Writes chunkstats, for each world and totals, to the output callback - void LogChunkStats(cCommandOutputCallback & a_Output); - - int GetPrimaryServerVersion(void) const { return m_PrimaryServerVersion; } // tolua_export - void SetPrimaryServerVersion(int a_Version) { m_PrimaryServerVersion = a_Version; } // tolua_export - - cMonsterConfig * GetMonsterConfig(void) { return m_MonsterConfig; } - - cGroupManager * GetGroupManager (void) { return m_GroupManager; } // tolua_export - cCraftingRecipes * GetCraftingRecipes(void) { return m_CraftingRecipes; } // tolua_export - cFurnaceRecipe * GetFurnaceRecipe (void) { return m_FurnaceRecipe; } // tolua_export - cWebAdmin * GetWebAdmin (void) { return m_WebAdmin; } // tolua_export - cPluginManager * GetPluginManager (void) { return m_PluginManager; } // tolua_export - cAuthenticator & GetAuthenticator (void) { return m_Authenticator; } - - /** Queues a console command for execution through the cServer class. - The command will be executed in the tick thread - The command's output will be written to the a_Output callback - "stop" and "restart" commands have special handling. - */ - void QueueExecuteConsoleCommand(const AString & a_Cmd, cCommandOutputCallback & a_Output); - - /** Queues a console command for execution through the cServer class. - The command will be executed in the tick thread - The command's output will be sent to console - "stop" and "restart" commands have special handling. - */ - void QueueExecuteConsoleCommand(const AString & a_Cmd); // tolua_export - - /// Executes a console command through the cServer class; does special handling for "stop" and "restart". - void ExecuteConsoleCommand(const AString & a_Cmd, cCommandOutputCallback & a_Output); - - /// Kicks the user, no matter in what world they are. Used from cAuthenticator - void KickUser(int a_ClientID, const AString & a_Reason); - - /// Called by cAuthenticator to auth the specified user - void AuthenticateUser(int a_ClientID); - - /// Executes commands queued in the command queue - void TickCommands(void); - - /// Returns the number of chunks loaded - int GetTotalChunkCount(void); // tolua_export - - /// Saves all chunks in all worlds - void SaveAllChunks(void); // tolua_export - - /// Sends a chat message to all connected clients (in all worlds) - void BroadcastChat(const AString & a_Message); // tolua_export - - /// Calls the callback for each player in all worlds - bool ForEachPlayer(cPlayerListCallback & a_Callback); // >> EXPORTED IN MANUALBINDINGS << - - /// Finds a player from a partial or complete player name and calls the callback - case-insensitive - bool FindAndDoWithPlayer(const AString & a_PlayerName, cPlayerListCallback & a_Callback); // >> EXPORTED IN MANUALBINDINGS << - - // tolua_begin - - /// Returns the textual description of the protocol version: 49 -> "1.4.4". Provided specifically for Lua API - static AString GetProtocolVersionTextFromInt(int a_ProtocolVersionNum); - - /// Returns the amount of virtual RAM used, in KiB. Returns a negative number on error - static int GetVirtualRAMUsage(void); - - /// Returns the amount of virtual RAM used, in KiB. Returns a negative number on error - static int GetPhysicalRAMUsage(void); - - // tolua_end - -private: - class cCommand - { - public: - cCommand(const AString & a_Command, cCommandOutputCallback * a_Output) : - m_Command(a_Command), - m_Output(a_Output) - { - } - - AString m_Command; - cCommandOutputCallback * m_Output; - } ; - - typedef std::map WorldMap; - typedef std::vector cCommandQueue; - - /// The version of the protocol that is primary for the server (reported in the server list). All versions are still supported. - int m_PrimaryServerVersion; - - cWorld * m_pDefaultWorld; - WorldMap m_WorldsByName; - - cCriticalSection m_CSPendingCommands; - cCommandQueue m_PendingCommands; - - cThread * m_InputThread; - - cServer * m_Server; - cMonsterConfig * m_MonsterConfig; - - cGroupManager * m_GroupManager; - cCraftingRecipes * m_CraftingRecipes; - cFurnaceRecipe * m_FurnaceRecipe; - cWebAdmin * m_WebAdmin; - cPluginManager * m_PluginManager; - cAuthenticator m_Authenticator; - cHTTPServer m_HTTPServer; - - cMCLogger * m_Log; - - bool m_bStop; - bool m_bRestart; - - void LoadGlobalSettings(); - - /// Loads the worlds from settings.ini, creates the worldmap - void LoadWorlds(cIniFile & IniFile); - - /// Starts each world's life - void StartWorlds(void); - - /// Stops each world's threads, so that it's safe to unload them - void StopWorlds(void); - - /// Unloads all worlds from memory - void UnloadWorlds(void); - - /// Does the actual work of executing a command - void DoExecuteConsoleCommand(const AString & a_Cmd); - - static void InputThread(void* a_Params); - - static cRoot* s_Root; -}; // tolua_export - - - - -- cgit v1.2.3