Continued development on line model.
This commit is contained in:
		
							parent
							
								
									6fbab9fd32
								
							
						
					
					
						commit
						0510ad5dc7
					
				| @ -12,29 +12,40 @@ namespace http { | |||||||
| 
 | 
 | ||||||
|       coreutils::Log(coreutils::LOG_DEBUG_4) << "DATA[" << request << "]"; |       coreutils::Log(coreutils::LOG_DEBUG_4) << "DATA[" << request << "]"; | ||||||
|        |        | ||||||
|       coreutils::PString request1(request); |       if(mode == REQUEST) {	    | ||||||
|       HTTPRequest httpRequest(request1); |  | ||||||
|        |        | ||||||
|       HTTPSession *httpSession = static_cast<HTTPServer &>(session->server).httpSessions.findSessionByHeader(httpRequest); | 	 coreutils::PString request1(request); | ||||||
|  | 	 HTTPRequest httpRequest(request1); | ||||||
| 		 | 		 | ||||||
|       std::stringstream content; | 	 HTTPSession *httpSession = static_cast<HTTPServer &>(session->server).httpSessions.findSessionByHeader(httpRequest); | ||||||
| 
 | 
 | ||||||
|       if(static_cast<HTTPServer &>(session->server).pageList.processRequest(httpRequest, session, httpSession, content)) { | 	 std::stringstream content; | ||||||
| 			std::string contentType = httpRequest.getHeader("Content-Type"); |  | ||||||
| 			if(contentType == "multipart/form-data") { |  | ||||||
| 				coreutils::IMFFormData *formdata = (coreutils::IMFFormData *)httpRequest.getBody(); |  | ||||||
| 				coreutils::Log(coreutils::LOG_DEBUG_2) << "username is '" << formdata->getByName("username") << "'";				 |  | ||||||
| 			} |  | ||||||
|        |        | ||||||
|          httpRequest.response.setCode("200"); | 	 if(static_cast<HTTPServer &>(session->server).pageList.processRequest(httpRequest, session, httpSession, content)) { | ||||||
|          httpRequest.response.setText("OK"); | 	    std::string contentType = httpRequest.getHeader("Content-Type"); | ||||||
|          data << httpRequest.response.getResponse(content.str()); | 	    if(contentType == "multipart/form-data") { | ||||||
|  | 	       coreutils::IMFFormData *formdata = (coreutils::IMFFormData *)httpRequest.getBody(); | ||||||
|  | 	       coreutils::Log(coreutils::LOG_DEBUG_2) << "username is '" << formdata->getByName("username") << "'";				 | ||||||
|  | 	    } | ||||||
|  | 
 | ||||||
|  | 	    httpRequest.response.setCode("200"); | ||||||
|  | 	    httpRequest.response.setText("OK"); | ||||||
|  | 	    data << httpRequest.response.getResponse(content.str()); | ||||||
|  | 	 }  | ||||||
|  |        | ||||||
|  | 	 else { | ||||||
|  | 	    httpRequest.response.setCode("404"); | ||||||
|  | 	    httpRequest.response.setText("Not Found"); | ||||||
|  | 	    data << httpRequest.response.getResponse(content.str()); | ||||||
|  | 	 } | ||||||
|  | 	 | ||||||
|  | 	 grabInput(); | ||||||
|  | 	 mode = IMFHEADER; | ||||||
|       } |       } | ||||||
|        |       else if(mode == IMFHEADER) { | ||||||
|       else { | 	 HTTPHeader header(content); | ||||||
|          httpRequest.response.setCode("404"); | 	 releaseGrab(); | ||||||
|          httpRequest.response.setText("Not Found"); | 	 mode = REQUEST;	 			    | ||||||
|          data << httpRequest.response.getResponse(content.str()); |  | ||||||
|       } |       } | ||||||
|        |        | ||||||
|       return true; |       return true; | ||||||
|  | |||||||
| @ -12,6 +12,10 @@ namespace http { | |||||||
|     public: |     public: | ||||||
|       int processCommand(std::string request, core::TCPSession *session, std::stringstream &data) override; |       int processCommand(std::string request, core::TCPSession *session, std::stringstream &data) override; | ||||||
| 
 | 
 | ||||||
|  |     private: | ||||||
|  |       enum Mode { REQUEST, IMFHEADER }; | ||||||
|  |       Mode mode = REQUEST; | ||||||
|  | 	          | ||||||
|    }; |    }; | ||||||
|        |        | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								HTTPServer
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								HTTPServer
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user