Breaking away from pure HTML towards JETServer.
This commit is contained in:
		
							parent
							
								
									c89c36c49a
								
							
						
					
					
						commit
						f4938937d1
					
				
							
								
								
									
										
											BIN
										
									
								
								Debug/HTTPServer
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Debug/HTTPServer
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Debug/main.cpp.o
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Debug/main.cpp.o
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -7,9 +7,9 @@ Debug/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \ | |||||||
|  ../ServerCore/TCPServerSocket.h ../ServerCore/Service.h \ |  ../ServerCore/TCPServerSocket.h ../ServerCore/Service.h \ | ||||||
|  ../ServerCore/CommandList.h ../ServerCore/EPoll.h \ |  ../ServerCore/CommandList.h ../ServerCore/EPoll.h \ | ||||||
|  ../ServerCore/Exception.h ../ServerCore/File.h ../ServerCore/Log.h \ |  ../ServerCore/Exception.h ../ServerCore/File.h ../ServerCore/Log.h \ | ||||||
|  ../ServerCore/IPAddress.h HTTPService.h ../ServerCore/Service.h _GET.h \ |  ../ServerCore/IPAddress.h HTTPService.h ../ServerCore/Service.h \ | ||||||
|  ../ServerCore/Command.h ../ServerCore/Session.h ../ServerCore/Header.h \ |  HTTPSessions.h ../ServerCore/Header.h ../ServerCore/Response.h _GET.h \ | ||||||
|  ../ServerCore/Response.h _POST.h |  ../ServerCore/Command.h ../ServerCore/Session.h _POST.h | ||||||
| 
 | 
 | ||||||
| ../ServerCore/includes: | ../ServerCore/includes: | ||||||
| 
 | 
 | ||||||
| @ -59,14 +59,16 @@ HTTPService.h: | |||||||
| 
 | 
 | ||||||
| ../ServerCore/Service.h: | ../ServerCore/Service.h: | ||||||
| 
 | 
 | ||||||
|  | HTTPSessions.h: | ||||||
|  | 
 | ||||||
|  | ../ServerCore/Header.h: | ||||||
|  | 
 | ||||||
|  | ../ServerCore/Response.h: | ||||||
|  | 
 | ||||||
| _GET.h: | _GET.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/Command.h: | ../ServerCore/Command.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/Session.h: | ../ServerCore/Session.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/Header.h: |  | ||||||
| 
 |  | ||||||
| ../ServerCore/Response.h: |  | ||||||
| 
 |  | ||||||
| _POST.h: | _POST.h: | ||||||
|  | |||||||
| @ -5,22 +5,22 @@ | |||||||
| ## Debug
 | ## Debug
 | ||||||
| ProjectName            :=HTTPServer | ProjectName            :=HTTPServer | ||||||
| ConfigurationName      :=Debug | ConfigurationName      :=Debug | ||||||
| WorkspacePath          :=/home/barant/Development/BMA/server_core | WorkspacePath          :=/home/barant/barant | ||||||
| ProjectPath            :=/home/barant/Development/BMA/server_core/HTTPServer | ProjectPath            :=/home/barant/barant/HTTPServer | ||||||
| IntermediateDirectory  :=./Debug | IntermediateDirectory  :=./Debug | ||||||
| OutDir                 := $(IntermediateDirectory) | OutDir                 := $(IntermediateDirectory) | ||||||
| CurrentFileName        := | CurrentFileName        := | ||||||
| CurrentFilePath        := | CurrentFilePath        := | ||||||
| CurrentFileFullPath    := | CurrentFileFullPath    := | ||||||
| User                   :=Brad Arant | User                   := | ||||||
| Date                   :=12/03/19 | Date                   :=05/18/19 | ||||||
| CodeLitePath           :=/home/barant/.codelite | CodeLitePath           :=/home/barant/.codelite | ||||||
| LinkerName             :=g++ | LinkerName             :=/usr/bin/x86_64-linux-gnu-g++ | ||||||
| SharedObjectLinkerName :=g++ -shared -fPIC | SharedObjectLinkerName :=/usr/bin/x86_64-linux-gnu-g++ -shared -fPIC | ||||||
| ObjectSuffix           :=.o | ObjectSuffix           :=.o | ||||||
| DependSuffix           :=.o.d | DependSuffix           :=.o.d | ||||||
| PreprocessSuffix       :=.o.i | PreprocessSuffix       :=.i | ||||||
| DebugSwitch            :=-gstab | DebugSwitch            :=-g  | ||||||
| IncludeSwitch          :=-I | IncludeSwitch          :=-I | ||||||
| LibrarySwitch          :=-l | LibrarySwitch          :=-l | ||||||
| OutputSwitch           :=-o  | OutputSwitch           :=-o  | ||||||
| @ -39,28 +39,28 @@ LinkOptions            := | |||||||
| IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch). $(IncludeSwitch)../ServerCore/  | IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch). $(IncludeSwitch)../ServerCore/  | ||||||
| IncludePCH             :=  | IncludePCH             :=  | ||||||
| RcIncludePath          :=  | RcIncludePath          :=  | ||||||
| Libs                   := $(LibrarySwitch)ServerCore $(LibrarySwitch)pthread  | Libs                   := $(LibrarySwitch)ServerCore $(LibrarySwitch)pthread $(LibrarySwitch)uuid  | ||||||
| ArLibs                 :=  "ServerCore" "pthread"  | ArLibs                 :=  "ServerCore" "pthread" "uuid"  | ||||||
| LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch)../ServerCore/Debug/  | LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch)../ServerCore/Debug/  | ||||||
| 
 | 
 | ||||||
| ##
 | ##
 | ||||||
| ## Common variables
 | ## Common variables
 | ||||||
| ## AR, CXX, CC, AS, CXXFLAGS and CFLAGS can be overriden using an environment variables
 | ## AR, CXX, CC, AS, CXXFLAGS and CFLAGS can be overriden using an environment variables
 | ||||||
| ##
 | ##
 | ||||||
| AR       := ar rcus | AR       := /usr/bin/x86_64-linux-gnu-ar rcu | ||||||
| CXX      := g++ | CXX      := /usr/bin/x86_64-linux-gnu-g++ | ||||||
| CC       := gcc | CC       := /usr/bin/x86_64-linux-gnu-gcc | ||||||
| CXXFLAGS :=  -g -O0 -Wall $(Preprocessors) | CXXFLAGS :=  -g -O0 -Wall $(Preprocessors) | ||||||
| CFLAGS   :=  -g -O0 -Wall $(Preprocessors) | CFLAGS   :=  -g -O0 -Wall $(Preprocessors) | ||||||
| ASFLAGS  :=  | ASFLAGS  :=  | ||||||
| AS       := as | AS       := /usr/bin/x86_64-linux-gnu-as | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ##
 | ##
 | ||||||
| ## User defined environment variables
 | ## User defined environment variables
 | ||||||
| ##
 | ##
 | ||||||
| CodeLiteDir:=/usr/share/codelite | CodeLiteDir:=/usr/share/codelite | ||||||
| Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix)  | Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/HTTPSession.cpp$(ObjectSuffix) $(IntermediateDirectory)/HTTPSessions.cpp$(ObjectSuffix) $(IntermediateDirectory)/_GET.cpp$(ObjectSuffix) $(IntermediateDirectory)/src__POST.cpp$(ObjectSuffix)  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -92,13 +92,45 @@ PreBuild: | |||||||
| ## Objects
 | ## Objects
 | ||||||
| ##
 | ##
 | ||||||
| $(IntermediateDirectory)/main.cpp$(ObjectSuffix): main.cpp $(IntermediateDirectory)/main.cpp$(DependSuffix) | $(IntermediateDirectory)/main.cpp$(ObjectSuffix): main.cpp $(IntermediateDirectory)/main.cpp$(DependSuffix) | ||||||
| 	$(CXX) $(IncludePCH) $(SourceSwitch) "/home/barant/Development/BMA/server_core/HTTPServer/main.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IncludePath) | 	$(CXX) $(IncludePCH) $(SourceSwitch) "/home/barant/barant/HTTPServer/main.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IncludePath) | ||||||
| $(IntermediateDirectory)/main.cpp$(DependSuffix): main.cpp | $(IntermediateDirectory)/main.cpp$(DependSuffix): main.cpp | ||||||
| 	@$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/main.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/main.cpp$(DependSuffix) -MM main.cpp | 	@$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/main.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/main.cpp$(DependSuffix) -MM main.cpp | ||||||
| 
 | 
 | ||||||
| $(IntermediateDirectory)/main.cpp$(PreprocessSuffix): main.cpp | $(IntermediateDirectory)/main.cpp$(PreprocessSuffix): main.cpp | ||||||
| 	$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/main.cpp$(PreprocessSuffix) main.cpp | 	$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/main.cpp$(PreprocessSuffix) main.cpp | ||||||
| 
 | 
 | ||||||
|  | $(IntermediateDirectory)/HTTPSession.cpp$(ObjectSuffix): HTTPSession.cpp $(IntermediateDirectory)/HTTPSession.cpp$(DependSuffix) | ||||||
|  | 	$(CXX) $(IncludePCH) $(SourceSwitch) "/home/barant/barant/HTTPServer/HTTPSession.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/HTTPSession.cpp$(ObjectSuffix) $(IncludePath) | ||||||
|  | $(IntermediateDirectory)/HTTPSession.cpp$(DependSuffix): HTTPSession.cpp | ||||||
|  | 	@$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/HTTPSession.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/HTTPSession.cpp$(DependSuffix) -MM HTTPSession.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/HTTPSession.cpp$(PreprocessSuffix): HTTPSession.cpp | ||||||
|  | 	$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/HTTPSession.cpp$(PreprocessSuffix) HTTPSession.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/HTTPSessions.cpp$(ObjectSuffix): HTTPSessions.cpp $(IntermediateDirectory)/HTTPSessions.cpp$(DependSuffix) | ||||||
|  | 	$(CXX) $(IncludePCH) $(SourceSwitch) "/home/barant/barant/HTTPServer/HTTPSessions.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/HTTPSessions.cpp$(ObjectSuffix) $(IncludePath) | ||||||
|  | $(IntermediateDirectory)/HTTPSessions.cpp$(DependSuffix): HTTPSessions.cpp | ||||||
|  | 	@$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/HTTPSessions.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/HTTPSessions.cpp$(DependSuffix) -MM HTTPSessions.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/HTTPSessions.cpp$(PreprocessSuffix): HTTPSessions.cpp | ||||||
|  | 	$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/HTTPSessions.cpp$(PreprocessSuffix) HTTPSessions.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/_GET.cpp$(ObjectSuffix): _GET.cpp $(IntermediateDirectory)/_GET.cpp$(DependSuffix) | ||||||
|  | 	$(CXX) $(IncludePCH) $(SourceSwitch) "/home/barant/barant/HTTPServer/_GET.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/_GET.cpp$(ObjectSuffix) $(IncludePath) | ||||||
|  | $(IntermediateDirectory)/_GET.cpp$(DependSuffix): _GET.cpp | ||||||
|  | 	@$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/_GET.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/_GET.cpp$(DependSuffix) -MM _GET.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/_GET.cpp$(PreprocessSuffix): _GET.cpp | ||||||
|  | 	$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/_GET.cpp$(PreprocessSuffix) _GET.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/src__POST.cpp$(ObjectSuffix): src/_POST.cpp $(IntermediateDirectory)/src__POST.cpp$(DependSuffix) | ||||||
|  | 	$(CXX) $(IncludePCH) $(SourceSwitch) "/home/barant/barant/HTTPServer/src/_POST.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src__POST.cpp$(ObjectSuffix) $(IncludePath) | ||||||
|  | $(IntermediateDirectory)/src__POST.cpp$(DependSuffix): src/_POST.cpp | ||||||
|  | 	@$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/src__POST.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/src__POST.cpp$(DependSuffix) -MM src/_POST.cpp | ||||||
|  | 
 | ||||||
|  | $(IntermediateDirectory)/src__POST.cpp$(PreprocessSuffix): src/_POST.cpp | ||||||
|  | 	$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src__POST.cpp$(PreprocessSuffix) src/_POST.cpp | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| -include $(IntermediateDirectory)/*$(DependSuffix) | -include $(IntermediateDirectory)/*$(DependSuffix) | ||||||
| ##
 | ##
 | ||||||
|  | |||||||
| @ -7,7 +7,18 @@ | |||||||
|     <File Name="_GET.h"/> |     <File Name="_GET.h"/> | ||||||
|     <File Name="_POST.h"/> |     <File Name="_POST.h"/> | ||||||
|     <File Name="main.cpp"/> |     <File Name="main.cpp"/> | ||||||
|  |     <File Name="HTTPSession.h"/> | ||||||
|  |     <File Name="HTTPSession.cpp"/> | ||||||
|  |     <File Name="HTTPSessions.h"/> | ||||||
|  |     <File Name="HTTPSessions.cpp"/> | ||||||
|  |     <File Name="_GET.cpp"/> | ||||||
|  |     <File Name="src/__index.h"/> | ||||||
|  |     <File Name="src/__setupadmin.h"/> | ||||||
|  |     <File Name="src/PageService.h" ExcludeProjConfig=""/> | ||||||
|  |     <File Name="src/_POST.cpp"/> | ||||||
|   </VirtualDirectory> |   </VirtualDirectory> | ||||||
|  |   <Dependencies Name="Debug"/> | ||||||
|  |   <Dependencies Name="Release"/> | ||||||
|   <Settings Type="Executable"> |   <Settings Type="Executable"> | ||||||
|     <GlobalSettings> |     <GlobalSettings> | ||||||
|       <Compiler Options="" C_Options="" Assembler=""> |       <Compiler Options="" C_Options="" Assembler=""> | ||||||
| @ -27,6 +38,7 @@ | |||||||
|         <LibraryPath Value="../ServerCore/Debug/"/> |         <LibraryPath Value="../ServerCore/Debug/"/> | ||||||
|         <Library Value="ServerCore"/> |         <Library Value="ServerCore"/> | ||||||
|         <Library Value="pthread"/> |         <Library Value="pthread"/> | ||||||
|  |         <Library Value="uuid"/> | ||||||
|       </Linker> |       </Linker> | ||||||
|       <ResourceCompiler Options="" Required="no"/> |       <ResourceCompiler Options="" Required="no"/> | ||||||
|       <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/> |       <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/> | ||||||
| @ -34,7 +46,7 @@ | |||||||
|       <Environment EnvVarSetName="<Use Defaults>" DbgSetName="<Use Defaults>"> |       <Environment EnvVarSetName="<Use Defaults>" DbgSetName="<Use Defaults>"> | ||||||
|         <![CDATA[]]> |         <![CDATA[]]> | ||||||
|       </Environment> |       </Environment> | ||||||
|       <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="no"> |       <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="../../../../usr/bin/gdb" IsExtended="no"> | ||||||
|         <DebuggerSearchPaths/> |         <DebuggerSearchPaths/> | ||||||
|         <PostConnectCommands/> |         <PostConnectCommands/> | ||||||
|         <StartupCommands/> |         <StartupCommands/> | ||||||
| @ -108,6 +120,4 @@ | |||||||
|       </Completion> |       </Completion> | ||||||
|     </Configuration> |     </Configuration> | ||||||
|   </Settings> |   </Settings> | ||||||
|   <Dependencies Name="Debug"/> |  | ||||||
|   <Dependencies Name="Release"/> |  | ||||||
| </CodeLite_Project> | </CodeLite_Project> | ||||||
|  | |||||||
| @ -1 +1 @@ | |||||||
| ./Debug/main.cpp.o | ./Debug/main.cpp.o ./Debug/HTTPSession.cpp.o ./Debug/HTTPSessions.cpp.o ./Debug/_GET.cpp.o ./Debug/src__POST.cpp.o | ||||||
|  | |||||||
| @ -2,6 +2,8 @@ | |||||||
| #define __HTTPService_h__ | #define __HTTPService_h__ | ||||||
| 
 | 
 | ||||||
| #include "Service.h" | #include "Service.h" | ||||||
|  | #include "HTTPSessions.h" | ||||||
|  | #include "Exception.h" | ||||||
| #include "_GET.h" | #include "_GET.h" | ||||||
| #include "_POST.h" | #include "_POST.h" | ||||||
| 
 | 
 | ||||||
| @ -15,6 +17,9 @@ namespace http { | |||||||
|          commands.add(post, "POST "); |          commands.add(post, "POST "); | ||||||
|       }       |       }       | ||||||
| 
 | 
 | ||||||
|  |       HTTPSessions httpSessions; | ||||||
|  | //      PageService pageService;
 | ||||||
|  |        | ||||||
|     private: |     private: | ||||||
|       _GET get; |       _GET get; | ||||||
|       _POST post; |       _POST post; | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								HTTPSession.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								HTTPSession.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | #include "HTTPSession.h" | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    HTTPSession::HTTPSession(std::string sessionId) { | ||||||
|  |       this->sessionId = sessionId;    | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|  |    std::string HTTPSession::getSessionId() { | ||||||
|  |       return sessionId; | ||||||
|  |    } | ||||||
|  |     | ||||||
|  | } | ||||||
|  | 
 | ||||||
							
								
								
									
										22
									
								
								HTTPSession.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								HTTPSession.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | #ifndef __HTTPSession_h__ | ||||||
|  | #define __HTTPSession_h__ | ||||||
|  | 
 | ||||||
|  | #include "Response.h" | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    class HTTPSession { | ||||||
|  | 
 | ||||||
|  |     public: | ||||||
|  |       HTTPSession(std::string sessionId); | ||||||
|  |       std::string getSessionId(); | ||||||
|  | 
 | ||||||
|  |     private: | ||||||
|  |       std::string sessionId; | ||||||
|  |        | ||||||
|  |        | ||||||
|  |    }; | ||||||
|  |     | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
							
								
								
									
										40
									
								
								HTTPSessions.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								HTTPSessions.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | |||||||
|  | #include "HTTPSessions.h" | ||||||
|  | #include "HTTPSession.h" | ||||||
|  | #include "Log.h" | ||||||
|  | #include <uuid/uuid.h> | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    HTTPSession * HTTPSessions::findSessionByHeader(core::Header &header, core::Response &response) {    | ||||||
|  |       std::string sessionId = header.getCookie("sessionId"); | ||||||
|  |       HTTPSession *session = findSessionById(sessionId, response);       | ||||||
|  |       return session; | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|  |    HTTPSession * HTTPSessions::findSessionById(std::string sessionId, core::Response &response) {    | ||||||
|  |       core::Log(core::LOG_DEBUG_1) << "Session Id: " << sessionId << ":" << sessionId.length(); | ||||||
|  |       HTTPSession *httpSession; | ||||||
|  |       if(sessionId.length() > 0) { | ||||||
|  |          httpSession = (HTTPSession *)sessions.find(sessionId)->second; | ||||||
|  |       } else { | ||||||
|  |          httpSession = createHTTPSession(); | ||||||
|  |          response.setCookie("sessionId", httpSession->getSessionId()); | ||||||
|  |       }       | ||||||
|  |       return httpSession; | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|  |    HTTPSession * HTTPSessions::createHTTPSession() { | ||||||
|  |       HTTPSession *httpSession = new HTTPSession(generateSessionId()); | ||||||
|  |       sessions.insert(std::make_pair(httpSession->getSessionId(), httpSession)); | ||||||
|  |       return httpSession; | ||||||
|  |    } | ||||||
|  | 
 | ||||||
|  |    std::string HTTPSessions::generateSessionId() { | ||||||
|  |       uuid_t uuid; | ||||||
|  |       uuid_generate_random(uuid); | ||||||
|  |       char uuid_s[37]; | ||||||
|  |       uuid_unparse(uuid, uuid_s); | ||||||
|  |       return uuid_s; | ||||||
|  |    } | ||||||
|  |     | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								HTTPSessions.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								HTTPSessions.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | #ifndef __HTTPSessions_h__ | ||||||
|  | #define __HTTPSessions_h__ | ||||||
|  | 
 | ||||||
|  | #include "Header.h" | ||||||
|  | #include "Response.h" | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    class HTTPSession; | ||||||
|  |     | ||||||
|  |    class HTTPSessions { | ||||||
|  |     | ||||||
|  |     public: | ||||||
|  |       HTTPSession * findSessionByHeader(core::Header &header, core::Response &response);   | ||||||
|  |       HTTPSession * findSessionById(std::string sessionId, core::Response &response);   | ||||||
|  |        | ||||||
|  |     private: | ||||||
|  |       HTTPSession * createHTTPSession(); | ||||||
|  |       std::string generateSessionId(); | ||||||
|  |        | ||||||
|  |       std::map<std::string, HTTPSession*> sessions; | ||||||
|  |     | ||||||
|  |    }; | ||||||
|  |     | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -5,12 +5,11 @@ Release/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \ | |||||||
|  ../ServerCore/IPAddress.h ../ServerCore/SessionFilter.h \ |  ../ServerCore/IPAddress.h ../ServerCore/SessionFilter.h \ | ||||||
|  ../ServerCore/Command.h ../ServerCore/ConsoleServer.h \ |  ../ServerCore/Command.h ../ServerCore/ConsoleServer.h \ | ||||||
|  ../ServerCore/TCPServerSocket.h ../ServerCore/Service.h \ |  ../ServerCore/TCPServerSocket.h ../ServerCore/Service.h \ | ||||||
|  ../ServerCore/CommandList.h ../ServerCore/EPoll.h HTTPServer.h \ |  ../ServerCore/CommandList.h ../ServerCore/EPoll.h \ | ||||||
|  ../ServerCore/TCPServerSocket.h ../ServerCore/Session.h \ |  ../ServerCore/Exception.h ../ServerCore/File.h ../ServerCore/Log.h \ | ||||||
|  ../ServerCore/IPAddress.h HTTPService.h ../ServerCore/Service.h _GET.h \ |  ../ServerCore/IPAddress.h HTTPService.h ../ServerCore/Service.h _GET.h \ | ||||||
|  ../ServerCore/Command.h ../ServerCore/Header.h ../ServerCore/Response.h \ |  ../ServerCore/Command.h ../ServerCore/Session.h ../ServerCore/Header.h \ | ||||||
|  _POST.h ../ServerCore/Exception.h ../ServerCore/File.h \ |  ../ServerCore/Response.h _POST.h | ||||||
|  ../ServerCore/Log.h |  | ||||||
| 
 | 
 | ||||||
| ../ServerCore/includes: | ../ServerCore/includes: | ||||||
| 
 | 
 | ||||||
| @ -48,11 +47,11 @@ Release/main.cpp.o: main.cpp ../ServerCore/includes ../ServerCore/EPoll.h \ | |||||||
| 
 | 
 | ||||||
| ../ServerCore/EPoll.h: | ../ServerCore/EPoll.h: | ||||||
| 
 | 
 | ||||||
| HTTPServer.h: | ../ServerCore/Exception.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/TCPServerSocket.h: | ../ServerCore/File.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/Session.h: | ../ServerCore/Log.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/IPAddress.h: | ../ServerCore/IPAddress.h: | ||||||
| 
 | 
 | ||||||
| @ -64,14 +63,10 @@ _GET.h: | |||||||
| 
 | 
 | ||||||
| ../ServerCore/Command.h: | ../ServerCore/Command.h: | ||||||
| 
 | 
 | ||||||
|  | ../ServerCore/Session.h: | ||||||
|  | 
 | ||||||
| ../ServerCore/Header.h: | ../ServerCore/Header.h: | ||||||
| 
 | 
 | ||||||
| ../ServerCore/Response.h: | ../ServerCore/Response.h: | ||||||
| 
 | 
 | ||||||
| _POST.h: | _POST.h: | ||||||
| 
 |  | ||||||
| ../ServerCore/Exception.h: |  | ||||||
| 
 |  | ||||||
| ../ServerCore/File.h: |  | ||||||
| 
 |  | ||||||
| ../ServerCore/Log.h: |  | ||||||
|  | |||||||
							
								
								
									
										28
									
								
								_GET.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								_GET.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | #include "_GET.h" | ||||||
|  | #include "HTTPSession.h" | ||||||
|  | #include "HTTPService.h" | ||||||
|  | #include "Log.h" | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    int _GET::processCommand(std::string request, core::Session *session, std::stringstream &data) { | ||||||
|  |     | ||||||
|  |       core::Header header(request); | ||||||
|  |       core::Response response; | ||||||
|  | 
 | ||||||
|  |       core::Log(core::LOG_DEBUG_1) << header.getPath() << " " << header.getCGIData(); | ||||||
|  | 
 | ||||||
|  |       HTTPSession *httpSession = ((HTTPService &)session->service).httpSessions.findSessionByHeader(header, response); | ||||||
|  | 
 | ||||||
|  |       std::stringstream content; | ||||||
|  |       ((HTTPService &)session->service).pageService.processRequest(header.getPath(), content); | ||||||
|  |                             | ||||||
|  |       response.setProtocol(header.requestProtocol()); | ||||||
|  |       response.setCode("200"); | ||||||
|  |       response.setText("OK"); | ||||||
|  |       response.setMimeType("text/html"); | ||||||
|  |       data << response.getResponse(content.str());  | ||||||
|  |       return 0; | ||||||
|  |    }       | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								_GET.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								_GET.h
									
									
									
									
									
								
							| @ -5,24 +5,14 @@ | |||||||
| #include "Session.h" | #include "Session.h" | ||||||
| #include "Header.h" | #include "Header.h" | ||||||
| #include "Response.h" | #include "Response.h" | ||||||
|  | #include "Log.h" | ||||||
| 
 | 
 | ||||||
| namespace http { | namespace http { | ||||||
|     |     | ||||||
|    class _GET : public core::Command { |    class _GET : public core::Command { | ||||||
|     |     | ||||||
|     public: |     public: | ||||||
|       int processCommand(std::string request, core::Session *session) override { |       int processCommand(std::string request, core::Session *session, std::stringstream &data) override; | ||||||
|          core::Header header(request); |  | ||||||
|          std::string data = "<html><head></head><body><h1>This Is A Test</h1></body></html>";	  |  | ||||||
|          core::Response response; |  | ||||||
|          response.setProtocol(header.requestProtocol()); |  | ||||||
|          response.setCode("200"); |  | ||||||
|          response.setText("OK"); |  | ||||||
|          response.setMimeType("text/html"); |  | ||||||
|          session->out << response.getResponse(data);  |  | ||||||
|          session->send(); |  | ||||||
|          return 0; |  | ||||||
|       }       |  | ||||||
|        |        | ||||||
|    }; |    }; | ||||||
|        |        | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								_POST.h
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								_POST.h
									
									
									
									
									
								
							| @ -3,24 +3,15 @@ | |||||||
| 
 | 
 | ||||||
| #include "Command.h" | #include "Command.h" | ||||||
| #include "Session.h" | #include "Session.h" | ||||||
|  | #include "Header.h" | ||||||
|  | #include "Response.h" | ||||||
| 
 | 
 | ||||||
| namespace http { | namespace http { | ||||||
|     |     | ||||||
|    class _POST : public core::Command { |    class _POST : public core::Command { | ||||||
|     |     | ||||||
|     public: |     public: | ||||||
|       int processCommand(std::string request, core::Session *session) override { |       int processCommand(std::string request, core::Session *session, std::stringstream &data) override; | ||||||
|          core::Header header(request); |  | ||||||
|          std::string data = "<html><head></head><body><h1>This Is A Test</h1></body></html>";	  |  | ||||||
|          core::Response response; |  | ||||||
|          response.setProtocol(header.requestProtocol()); |  | ||||||
|          response.setCode("200"); |  | ||||||
|          response.setText("OK"); |  | ||||||
|          response.setMimeType("text/html"); |  | ||||||
|          session->out << response.getResponse(data);  |  | ||||||
|          session->send();	 	  |  | ||||||
|          return 0; |  | ||||||
|       }       |  | ||||||
|        |        | ||||||
|    }; |    }; | ||||||
|        |        | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.cpp
									
									
									
									
									
								
							| @ -19,7 +19,7 @@ int main(int argc, char **argv) { | |||||||
|       core::EPoll ePoll; |       core::EPoll ePoll; | ||||||
|        |        | ||||||
| 		http::HTTPService httpService; | 		http::HTTPService httpService; | ||||||
|       core::TCPServerSocket http(ePoll, httpService, core::IPAddress(ipAddress, 8090)); |       core::TCPServerSocket http(ePoll, httpService, core::IPAddress(ipAddress, 8080)); | ||||||
| 
 | 
 | ||||||
| 		core::Service consoleService; | 		core::Service consoleService; | ||||||
|       core::ConsoleServer console(ePoll, consoleService, core::IPAddress(ipAddress, 1027)); |       core::ConsoleServer console(ePoll, consoleService, core::IPAddress(ipAddress, 1027)); | ||||||
|  | |||||||
							
								
								
									
										27
									
								
								src/PageService.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/PageService.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | #ifndef __PageService_h__ | ||||||
|  | #define __PageService_h__ | ||||||
|  | 
 | ||||||
|  | #include "Service.h" | ||||||
|  | #include "Exception.h" | ||||||
|  | #include "__index.h" | ||||||
|  | #include "__setupadmin.h" | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  |    | ||||||
|  |    class PageService : public core::Service { | ||||||
|  | 
 | ||||||
|  |     public: | ||||||
|  |       PageService() {	    | ||||||
|  |          commands.add(index, "/"); | ||||||
|  |          commands.add(setupadmin, "/setupadmin "); | ||||||
|  |       }       | ||||||
|  |        | ||||||
|  |     private: | ||||||
|  |       __index index; | ||||||
|  |       __setupadmin setupadmin; | ||||||
|  |        | ||||||
|  |    }; | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
							
								
								
									
										28
									
								
								src/_POST.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/_POST.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | #include "_POST.h" | ||||||
|  | #include "HTTPSession.h" | ||||||
|  | #include "HTTPService.h" | ||||||
|  | #include "Log.h" | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    int _POST::processCommand(std::string request, core::Session *session, std::stringstream &data) { | ||||||
|  |     | ||||||
|  |       core::Header header(request); | ||||||
|  |       core::Response response; | ||||||
|  | 
 | ||||||
|  |       core::Log(core::LOG_DEBUG_1) << header.getPath() << " " << header.getCGIData(); | ||||||
|  | 
 | ||||||
|  |       HTTPSession *httpSession = ((HTTPService &)session->service).httpSessions.findSessionByHeader(header, response); | ||||||
|  | 
 | ||||||
|  |       std::stringstream content; | ||||||
|  | //      ((HTTPService &)session->service).pageService.processRequest(header.getPath(), content);
 | ||||||
|  |                             | ||||||
|  |       response.setProtocol(header.requestProtocol()); | ||||||
|  |       response.setCode("200"); | ||||||
|  |       response.setText("OK"); | ||||||
|  |       response.setMimeType("text/html"); | ||||||
|  |       data << response.getResponse(content.str());  | ||||||
|  |       return 0; | ||||||
|  |    }       | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								src/__index.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/__index.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | #ifndef ____index_h__ | ||||||
|  | #define ____index_h__ | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    class __index : core::Command { | ||||||
|  |     | ||||||
|  |       int processCommand(std::string request, core::Session *session) override { | ||||||
|  |          session.out << "<http><head></head><body style=\"background: #006; color: #fff;\">\
 | ||||||
|  |             <form action=\"setupadmin\"><div style=\"background: #44C; text: #888; padding: 20px;\"><p>You have successfully set up a JETServer.\
 | ||||||
|  |             <br>Session Id: " + httpSession->getSessionId() + "\ | ||||||
|  |             <br>The configuration has not yet been established for this web site.</p>\ | ||||||
|  |             <button>Configure</button>\ | ||||||
|  |             </div></form></body></html>"; | ||||||
|  |          session.send(); | ||||||
|  |    }          | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								src/__setupadmin.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/__setupadmin.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | #ifndef ____setupadmin_h__ | ||||||
|  | #define ____setupadmin_h__ | ||||||
|  | 
 | ||||||
|  | namespace http { | ||||||
|  | 
 | ||||||
|  |    class __setupadmin : core::Command { | ||||||
|  |     | ||||||
|  |       int processCommand(std::string request, core::Session *session) override { | ||||||
|  |          session.out << "<http><head></head><body style=\"background: #006; color: #fff;\">\
 | ||||||
|  |          <form action=\"setupadmin\"><div style=\"background: #44C; text: #888; padding: 20px;\"><p>Please enter credential information\
 | ||||||
|  |          for the security officer.<br><input type=\"text\" name=\"username\" size=\"50\">\
 | ||||||
|  |          <br>Session Id: " + httpSession->getSessionId() + "\ | ||||||
|  |          <br>The configuration has not yet been established for this web site.</p>\ | ||||||
|  |          <button>Configure</button>\ | ||||||
|  |          </div></form></body></html>"; | ||||||
|  |          session.send(); | ||||||
|  |    }          | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Brad Arant
						Brad Arant