Adjustments to ServerCore changes.

This commit is contained in:
Brad Arant 2019-09-19 08:56:10 -07:00
parent ed39ea0b7b
commit e7b4ae818f
24 changed files with 70 additions and 73 deletions

Binary file not shown.

View File

@ -2,24 +2,23 @@ Debug/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \
../CoreUtils/Log.h ../CoreUtils/includes ../CoreUtils/File.h \
../ServerCore/Object.h ../ServerCore/includes ../CoreUtils/LogListener.h \
../ServerCore/Socket.h ../ServerCore/Object.h ../ServerCore/Thread.h \
../ServerCore/Session.h ../ServerCore/TCPSocket.h \
../ServerCore/TCPSession.h ../ServerCore/TCPSocket.h \
../ServerCore/IPAddress.h ../ServerCore/SessionFilter.h \
../ServerCore/Command.h ../ServerCore/ConsoleService.h \
../ServerCore/Service.h ../ServerCore/CommandList.h \
../ServerCore/ConsoleSession.h ../ServerCore/TerminalSession.h \
../ServerCore/TCPServerSocket.h ../ServerCore/IPAddressList.h \
../ServerCore/Command.h ../ServerCore/ConsoleServer.h \
../ServerCore/TCPServer.h ../ServerCore/IPAddressList.h \
../ServerCore/CommandList.h ../ServerCore/EPoll.h \
../CoreUtils/Exception.h ../CoreUtils/File.h ../ServerCore/IPAddress.h \
HTTPService.h ../ServerCore/Service.h HTTPSessions.h HTTPRequest.h \
HTTPServer.h HTTPService.h HTTPSessions.h HTTPRequest.h \
../CoreUtils/PString.h ../CoreUtils/IMFMessage.h ../CoreUtils/PString.h \
../CoreUtils/IMFHeader.h ../CoreUtils/IMFRequest.h \
../CoreUtils/IMFBody.h ../CoreUtils/IMFRequest.h \
../CoreUtils/IMFResponse.h ../CoreUtils/IMFMessage.h \
../ServerCore/Command.h ../ServerCore/Session.h HTTPPageList.h __index.h \
HTTPPage.h HTTPSession.h ../JET/Variables.h __script.h __editview.h \
__style.h __setupadmin.h __favicon_ico.h __welcome.h \
../ServerCore/Command.h ../ServerCore/TCPSession.h HTTPPageList.h \
__index.h HTTPPage.h HTTPSession.h ../JET/Variables.h __script.h \
__editview.h __style.h __setupadmin.h __favicon_ico.h __welcome.h \
../BMAMySQL/BMAMySQL.h __mainmenu.h __newview.h __configure.h \
__viewlist.h ../CoreUtils/Directory.h ../CoreUtils/DirectoryEntry.h \
HTTPHandler.h
HTTPHandler.h ../ServerCore/TCPServer.h
../ServerCore/includes:
@ -43,7 +42,7 @@ Debug/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \
../ServerCore/Thread.h:
../ServerCore/Session.h:
../ServerCore/TCPSession.h:
../ServerCore/TCPSocket.h:
@ -53,19 +52,15 @@ Debug/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \
../ServerCore/Command.h:
../ServerCore/ConsoleService.h:
../ServerCore/ConsoleServer.h:
../ServerCore/Service.h:
../ServerCore/TCPServer.h:
../ServerCore/IPAddressList.h:
../ServerCore/CommandList.h:
../ServerCore/ConsoleSession.h:
../ServerCore/TerminalSession.h:
../ServerCore/TCPServerSocket.h:
../ServerCore/IPAddressList.h:
../ServerCore/EPoll.h:
../CoreUtils/Exception.h:
@ -73,9 +68,9 @@ Debug/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \
../ServerCore/IPAddress.h:
HTTPService.h:
HTTPServer.h:
../ServerCore/Service.h:
HTTPService.h:
HTTPSessions.h:
@ -101,7 +96,7 @@ HTTPRequest.h:
../ServerCore/Command.h:
../ServerCore/Session.h:
../ServerCore/TCPSession.h:
HTTPPageList.h:
@ -140,3 +135,5 @@ __viewlist.h:
../CoreUtils/DirectoryEntry.h:
HTTPHandler.h:
../ServerCore/TCPServer.h:

View File

@ -1,6 +1,6 @@
#include "HTTPHandler.h"
#include "HTTPSession.h"
#include "HTTPService.h"
#include "HTTPServer.h"
#include "HTTPRequest.h"
#include "PString.h"
#include "IMFFormData.h"
@ -8,16 +8,16 @@
namespace http {
int HTTPHandler::processCommand(std::string request, core::Session *session, std::stringstream &data) {
int HTTPHandler::processCommand(std::string request, core::TCPSession *session, std::stringstream &data) {
coreutils::PString request1(request);
HTTPRequest httpRequest(request1);
HTTPSession *httpSession = ((HTTPService &)session->service).httpSessions.findSessionByHeader(httpRequest);
HTTPSession *httpSession = static_cast<HTTPServer &>(session->server).httpSessions.findSessionByHeader(httpRequest);
std::stringstream content;
if(((HTTPService &)session->service).pageList.processRequest(httpRequest, session, httpSession, content)) {
if(static_cast<HTTPServer &>(session->server).pageList.processRequest(httpRequest, session, httpSession, content)) {
std::string contentType = httpRequest.getHeader("Content-Type");
if(contentType == "multipart/form-data") {
coreutils::IMFFormData *formdata = (coreutils::IMFFormData *)httpRequest.getBody();

View File

@ -2,7 +2,7 @@
#define __HTTPHandler_h__
#include "Command.h"
#include "Session.h"
#include "TCPSession.h"
#include "Log.h"
namespace http {
@ -10,7 +10,7 @@ namespace http {
class HTTPHandler : public core::Command {
public:
int processCommand(std::string request, core::Session *session, std::stringstream &data) override;
int processCommand(std::string request, core::TCPSession *session, std::stringstream &data) override;
};

View File

@ -3,7 +3,7 @@
#include "HTTPSession.h"
#include "HTTPRequest.h"
#include "Session.h"
#include "TCPSession.h"
#include "Log.h"
namespace http {
@ -23,7 +23,7 @@ namespace http {
}
virtual int processCommand(std::string request,
core::Session *session,
core::TCPSession *session,
HTTPSession *httpSession,
HTTPRequest &httpRequest,
std::stringstream &data) {

View File

@ -2,7 +2,7 @@
namespace http {
bool HTTPPageList::processRequest(HTTPRequest &httpRequest, core::Session *session, HTTPSession *httpSession, std::stringstream &data) {
bool HTTPPageList::processRequest(HTTPRequest &httpRequest, core::TCPSession *session, HTTPSession *httpSession, std::stringstream &data) {
httpRequest.response.setProtocol(httpRequest.request.getProtocol());
for(auto *page : pages) {
if(page->check(httpRequest.request.getURI())) {

View File

@ -1,7 +1,7 @@
#ifndef __HTTPPageList_h__
#define __HTTPPageList_h__
#include "Session.h"
#include "TCPSession.h"
#include "HTTPRequest.h"
#include "__index.h"
#include "__script.h"
@ -34,7 +34,7 @@ namespace http {
add(viewlist, "/viewlist");
}
bool processRequest(HTTPRequest &httpRequest, core::Session *session, HTTPSession *httpSession, std::stringstream &data);
bool processRequest(HTTPRequest &httpRequest, core::TCPSession *session, HTTPSession *httpSession, std::stringstream &data);
void add(HTTPPage &page, std::string name = "");

View File

@ -1,23 +1,23 @@
#ifndef __HTTPService_h__
#define __HTTPService_h__
#ifndef __HTTPServer_h__
#define __HTTPServer_h__
#include "Service.h"
#include "TCPServer.h"
#include "HTTPSessions.h"
#include "HTTPPageList.h"
#include "Exception.h"
#include "HTTPHandler.h"
namespace http {
class HTTPService : public core::Service {
class HTTPServer : public core::TCPServer {
public:
HTTPService() {
HTTPServer(core::EPoll &ePoll, core::IPAddress ipAddress, HTTPSessions &httpSessions)
: TCPServer(ePoll, ipAddress), httpSessions(httpSessions) {
commands.add(getHandler, "GET");
commands.add(postHandler, "POST");
}
HTTPSessions httpSessions;
HTTPSessions &httpSessions;
HTTPPageList pageList;
private:

View File

@ -13,7 +13,7 @@ CurrentFileName :=
CurrentFilePath :=
CurrentFileFullPath :=
User :=Brad Arant
Date :=12/09/19
Date :=18/09/19
CodeLitePath :=/home/bradarant/.codelite
LinkerName :=/usr/bin/x86_64-linux-gnu-g++
SharedObjectLinkerName :=/usr/bin/x86_64-linux-gnu-g++ -shared -fPIC

View File

@ -3,7 +3,6 @@
<Description/>
<Dependencies/>
<VirtualDirectory Name="src">
<File Name="HTTPService.h"/>
<File Name="main.cpp"/>
<File Name="HTTPSession.h"/>
<File Name="HTTPSession.cpp"/>
@ -27,6 +26,7 @@
<File Name="__configure.h"/>
<File Name="__viewlist.h"/>
<File Name="HTTPPageCache.h"/>
<File Name="HTTPServer.h"/>
</VirtualDirectory>
<Dependencies Name="Debug"/>
<Dependencies Name="Release"/>

View File

@ -44,7 +44,7 @@ namespace http {
return uuid_s;
}
int HTTPSessions::processCommand(std::string command, core::Session *session, std::stringstream &data) {
int HTTPSessions::processCommand(std::string command, core::TCPSession *session, std::stringstream &data) {
if(sessions.size() > 0) {
int seq = 0;
for(auto httpSession: sessions)

View File

@ -3,7 +3,7 @@
#include "HTTPRequest.h"
#include "Command.h"
#include "Session.h"
#include "TCPSession.h"
namespace http {
@ -15,7 +15,7 @@ namespace http {
HTTPSession * findSessionByHeader(HTTPRequest &httpRequest);
HTTPSession * findSessionById(std::string sessionId, HTTPRequest &httpRequest);
int processCommand(std::string request, core::Session *session, std::stringstream &data);
int processCommand(std::string request, core::TCPSession *session, std::stringstream &data);
private:
HTTPSession * createHTTPSession();

View File

@ -5,7 +5,7 @@ namespace http {
class __configure : public HTTPPage {
int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
int processCommand(std::string request, core::TCPSession *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
data << "<form name=\"configure\" action=\"setupadmin\" method=\"POST\">" << std::endl;
data << " <div class=\"window\"><h1>System Configuration</h1>" << std::endl;

View File

@ -7,7 +7,7 @@ namespace http {
class __editview : public HTTPPage {
int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
int processCommand(std::string request, core::TCPSession *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
data << " <div style=\"position: relative;\">" << std::endl;
data << "" << std::endl;

View File

@ -8,7 +8,7 @@ namespace http {
class __favicon_ico : public HTTPPage {
int processCommand(std::string request,
core::Session *session,
core::TCPSession *session,
HTTPSession *httpSession,
HTTPRequest &httpRequest,
std::stringstream &data) override {

View File

@ -8,7 +8,7 @@ namespace http {
class __index : public HTTPPage {
int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
int processCommand(std::string request, core::TCPSession *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
data << "<html>" << std::endl;
data << " <head>" << std::endl;

View File

@ -8,7 +8,7 @@ namespace http {
class __mainmenu : public HTTPPage {
int processCommand(std::string request,
core::Session *session,
core::TCPSession *session,
HTTPSession *httpSession,
HTTPRequest &httpRequest,
std::stringstream &data) override {

View File

@ -8,7 +8,7 @@ namespace http {
class __newview : public HTTPPage {
int processCommand(std::string request,
core::Session *session,
core::TCPSession *session,
HTTPSession *httpSession,
HTTPRequest &httpRequest,
std::stringstream &data) override {

View File

@ -7,7 +7,7 @@ namespace http {
class __script : public HTTPPage {
int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
int processCommand(std::string request, core::TCPSession *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
data << "function serverSend(url, type, receiver, formData, callback) {" << std::endl;
data << " var server = new XMLHttpRequest();" << std::endl;

View File

@ -5,7 +5,7 @@ namespace http {
class __setupadmin : public HTTPPage {
int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
int processCommand(std::string request, core::TCPSession *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
data << "<form name=\"setupadmin\" action=\"setupadmin\" method=\"POST\">" << std::endl;
data << " <div class=\"window\"><p>Please enter credential information" << std::endl;

View File

@ -7,7 +7,7 @@ namespace http {
class __style : public HTTPPage {
int processCommand(std::string request, core::Session *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
int processCommand(std::string request, core::TCPSession *session, HTTPSession *httpSession, HTTPRequest &httpRequest, std::stringstream &data) override {
data << "body {background: #006;" << std::endl;
data << " color: #fff;" << std::endl;

View File

@ -9,7 +9,7 @@ namespace http {
class __viewlist : public HTTPPage {
int processCommand(std::string request,
core::Session *session,
core::TCPSession *session,
HTTPSession *httpSession,
HTTPRequest &httpRequest,
std::stringstream &data) override {

View File

@ -9,7 +9,7 @@ namespace http {
class __welcome : public HTTPPage {
int processCommand(std::string request,
core::Session *session,
core::TCPSession *session,
HTTPSession *httpSession,
HTTPRequest &httpRequest,
std::stringstream &data) override {

View File

@ -1,11 +1,11 @@
#include "includes"
#include "EPoll.h"
#include "ConsoleService.h"
#include "ConsoleServer.h"
#include "Exception.h"
#include "File.h"
#include "Log.h"
#include "IPAddress.h"
#include "HTTPService.h"
#include "HTTPServer.h"
int main(int argc, char **argv) {
@ -18,17 +18,17 @@ int main(int argc, char **argv) {
core::EPoll ePoll;
http::HTTPService httpService;
core::TCPServerSocket http(ePoll, httpService, core::IPAddress(ipAddress, 8080));
http::HTTPSessions httpSessions;
http::HTTPServer http(ePoll, core::IPAddress(ipAddress, 8080), httpSessions);
// http::HTTPSServer http(ePoll, core::IPAddress(ipAddress, 8143));
core::ConsoleService consoleService;
core::TCPServerSocket console(ePoll, consoleService, core::IPAddress(ipAddress, 1027));
core::ConsoleServer console(ePoll, core::IPAddress(ipAddress, 1027));
consoleService.commands.add(ePoll, "threads");
consoleService.commands.add(httpService.httpSessions, "sessions");
consoleService.commands.add(console, "consoles");
consoleService.commands.add(consoleService.commands, "help");
ePoll.start(16, 1000);
console.commands.add(ePoll, "threads");
console.commands.add(httpSessions, "sessions");
console.commands.add(console, "consoles");
console.commands.add(console.commands, "help");
ePoll.start(2, 1000);
while(true)
sleep(300);