diff --git a/HTTPHandler.cpp b/HTTPHandler.cpp index a2aedb0..f669804 100644 --- a/HTTPHandler.cpp +++ b/HTTPHandler.cpp @@ -15,14 +15,14 @@ namespace http { switch(mode) { case REQUEST: - httpRequest = new HTTPRequest(request1); - session->server.commands.grabInput(session, *this); - mode = IMF; - break; + httpRequest = new HTTPRequest(request1); + session->server.commands.grabInput(session, *this); + mode = IMF; + break; case IMF: - httpRequest->parse(request1); - if(request == "") { + httpRequest->parse(request1); + if(request == "") { session->server.commands.clearGrab(session); mode = REQUEST; processHTTPRequest(session, data); @@ -34,7 +34,7 @@ namespace http { bool HTTPHandler::processHTTPRequest(core::TCPSession *session, std::stringstream &data) { - HTTPSession *httpSession = static_cast(session->server).httpSessions.findSessionByHeader(httpRequest); + HTTPSession *httpSession = static_cast(session->server).httpSessions.findSessionByHeader(httpRequest); std::stringstream content; diff --git a/HTTPHandler.h b/HTTPHandler.h index cad952b..d6f6489 100644 --- a/HTTPHandler.h +++ b/HTTPHandler.h @@ -4,6 +4,7 @@ #include "Command.h" #include "TCPSession.h" #include "Log.h" +#include "IMFMessage.h" #include "HTTPRequest.h" namespace http { diff --git a/HTTPPageList.cpp b/HTTPPageList.cpp index 89edd26..79a428d 100644 --- a/HTTPPageList.cpp +++ b/HTTPPageList.cpp @@ -3,10 +3,10 @@ namespace http { bool HTTPPageList::processRequest(HTTPRequest *httpRequest, core::TCPSession *session, HTTPSession *httpSession, std::stringstream &data) { - httpRequest->response.setProtocol(httpRequest->request.getProtocol()); + httpRequest->response.setProtocol(httpRequest->request->getProtocol()); for(auto *page : pages) { - if(page->check(httpRequest->request.getURI())) { - return page->processCommand(httpRequest->request.getURI(), session, httpSession, httpRequest, data); + if(page->check(httpRequest->request->getURI())) { + return page->processCommand(httpRequest->request->getURI(), session, httpSession, httpRequest, data); } } return false; diff --git a/HTTPRequest.h b/HTTPRequest.h index e35af44..13ef3b4 100644 --- a/HTTPRequest.h +++ b/HTTPRequest.h @@ -13,14 +13,17 @@ namespace http { class HTTPRequest : public coreutils::IMFMessage { public: - HTTPRequest(coreutils::PString &in); + HTTPRequest(coreutils::PString &in) : IMFMessage(in) { + message = new IMFMessage(in); + } + bool parse(coreutils::PString &in) { + message->parse(in); + return true; + } - coreutils::IMFRequest request; + coreutils::IMFRequest *request; + coreutils::IMFMessage *message; coreutils::IMFResponse response; - - private: - std::string key; - std::string value; }; diff --git a/HTTPServer b/HTTPServer new file mode 100755 index 0000000..0308134 Binary files /dev/null and b/HTTPServer differ diff --git a/core b/core deleted file mode 100644 index cd77b0f..0000000 Binary files a/core and /dev/null differ