#include "HTTPHandler.h" #include "HTTPSession.h" #include "HTTPService.h" #include "HTTPRequest.h" #include "PString.h" #include "Log.h" namespace http { int HTTPHandler::processCommand(std::string request, core::Session *session, std::stringstream &data) { coreutils::PString request1(request); HTTPRequest httpRequest(request1); core::Log(core::LOG_DEBUG_2) << "Host value is " << httpRequest.getHeader("Host"); core::Log(core::LOG_DEBUG_3) << "Request: " << request; HTTPSession *httpSession = ((HTTPService &)session->service).httpSessions.findSessionByHeader(httpRequest); std::stringstream content; if(((HTTPService &)session->service).pageList.processRequest(httpRequest.request.getURI(), session, httpSession, httpRequest, content)) { httpRequest.response.setProtocol(httpRequest.request.getProtocol()); httpRequest.response.setCode("200"); httpRequest.response.setText("OK"); data << httpRequest.response.getResponse(content.str()); } else { httpRequest.response.setProtocol(httpRequest.request.getProtocol()); httpRequest.response.setCode("404"); httpRequest.response.setText("Not Found"); data << httpRequest.response.getResponse(content.str()); } return true; } }