From aafef187ef856a36c3f8e599afea2dee44f08904 Mon Sep 17 00:00:00 2001 From: faketruth Date: Mon, 3 Oct 2011 19:25:04 +0000 Subject: Source for additional projects -jsoncpp -lua -tolua++ -WebServer -zlib -iniFile git-svn-id: http://mc-server.googlecode.com/svn/trunk@4 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- WebServer/WebServer.h | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 WebServer/WebServer.h (limited to 'WebServer/WebServer.h') diff --git a/WebServer/WebServer.h b/WebServer/WebServer.h new file mode 100644 index 000000000..06c6359e6 --- /dev/null +++ b/WebServer/WebServer.h @@ -0,0 +1,95 @@ +/* + WebServer.h + + Copyright (C) 2003-2004 René Nyffenegger + + This source code is provided 'as-is', without any express or implied + warranty. In no event will the author be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this source code must not be misrepresented; you must not + claim that you wrote the original source code. If you use this source code + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original source code. + + 3. This notice may not be removed or altered from any source distribution. + + René Nyffenegger rene.nyffenegger@adp-gmbh.ch + +*/ + +/* + Note on point 2: + THIS IS NOT THE ORIGINAL SOURCE1!!1!!!~!!~`1ONE!!`1 +*/ + +#include +#include + +class cEvent; +class Socket; +class SocketServer; +class webserver { + public: + struct http_request { + + http_request() + : s_( 0 ) + , authentication_given_(false) + {} + + Socket* s_; + std::string method_; + std::string path_; + std::map params_; + + std::string accept_; + std::string accept_language_; + std::string accept_encoding_; + std::string user_agent_; + + /* status_: used to transmit server's error status, such as + o 202 OK + o 404 Not Found + and so on */ + std::string status_; + + /* auth_realm_: allows to set the basic realm for an authentication, + no need to additionally set status_ if set */ + std::string auth_realm_; + + std::string answer_; + + /* authentication_given_ is true when the user has entered a username and password. + These can then be read from username_ and password_ */ + bool authentication_given_; + std::string username_; + std::string password_; + }; + + typedef void (*request_func) (http_request*); + webserver(unsigned int port_to_listen, request_func); + ~webserver(); + + void Begin(); + void Stop(); + + private: + bool m_bStop; + #ifdef _WIN32 + static unsigned __stdcall Request(void*); + #else + static void* Request(void*); + #endif + static request_func request_func_; + + cEvent* m_Event; + SocketServer* m_Socket; +}; -- cgit v1.2.3