Continued development on line model.
This commit is contained in:
parent
6fbab9fd32
commit
0510ad5dc7
@ -12,31 +12,42 @@ 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);
|
|
||||||
|
coreutils::PString request1(request);
|
||||||
|
HTTPRequest httpRequest(request1);
|
||||||
|
|
||||||
HTTPSession *httpSession = static_cast<HTTPServer &>(session->server).httpSessions.findSessionByHeader(httpRequest);
|
HTTPSession *httpSession = static_cast<HTTPServer &>(session->server).httpSessions.findSessionByHeader(httpRequest);
|
||||||
|
|
||||||
std::stringstream content;
|
std::stringstream content;
|
||||||
|
|
||||||
if(static_cast<HTTPServer &>(session->server).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");
|
std::string contentType = httpRequest.getHeader("Content-Type");
|
||||||
if(contentType == "multipart/form-data") {
|
if(contentType == "multipart/form-data") {
|
||||||
coreutils::IMFFormData *formdata = (coreutils::IMFFormData *)httpRequest.getBody();
|
coreutils::IMFFormData *formdata = (coreutils::IMFFormData *)httpRequest.getBody();
|
||||||
coreutils::Log(coreutils::LOG_DEBUG_2) << "username is '" << formdata->getByName("username") << "'";
|
coreutils::Log(coreutils::LOG_DEBUG_2) << "username is '" << formdata->getByName("username") << "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
httpRequest.response.setCode("200");
|
httpRequest.response.setCode("200");
|
||||||
httpRequest.response.setText("OK");
|
httpRequest.response.setText("OK");
|
||||||
data << httpRequest.response.getResponse(content.str());
|
data << httpRequest.response.getResponse(content.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
httpRequest.response.setCode("404");
|
httpRequest.response.setCode("404");
|
||||||
httpRequest.response.setText("Not Found");
|
httpRequest.response.setText("Not Found");
|
||||||
data << httpRequest.response.getResponse(content.str());
|
data << httpRequest.response.getResponse(content.str());
|
||||||
|
}
|
||||||
|
|
||||||
|
grabInput();
|
||||||
|
mode = IMFHEADER;
|
||||||
}
|
}
|
||||||
|
else if(mode == IMFHEADER) {
|
||||||
|
HTTPHeader header(content);
|
||||||
|
releaseGrab();
|
||||||
|
mode = REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,11 @@ 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