Loading examples/httpauth.cpp +11 −8 Original line number Diff line number Diff line Loading @@ -43,11 +43,14 @@ public: }; void RequestEvent(netplus::con *curcon){ void RequestEvent(libhttppp::HttpRequest *curreq){ try{ std::cout << "Parse Request\n" << std::endl; libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon; curcon->resizeRecvQueue(curreq->parse()); try{ curreq->resizeRecvQueue(curreq->parse()); }catch(...){ std::cerr << "Illegal request !" << std::endl; } const char *cururl=curreq->getRequestURL(); if(strncmp(cururl,"/",strlen(cururl))==0){ libhttppp::HttpResponse curres; Loading @@ -69,11 +72,11 @@ public: condat << "</ul></body></html>"; libhtmlpp::HtmlString html; libhtmlpp::print(condat.parse(),html); curres.send(curcon,html.c_str(),html.size()); curres.send(curreq,html.c_str(),html.size()); }else if(strncmp(cururl,"/httpbasicauth",strlen(cururl))==0 || strncmp(cururl,"/httpdigestauth",strlen(cururl))==0){ libhttppp::HttpAuth httpauth; httpauth.parse(&curreq); httpauth.parse(curreq); const char *username=httpauth.getUsername(); const char *password=httpauth.getPassword(); if(username && password){ Loading @@ -96,7 +99,7 @@ public: curres.setContentType("text/html"); libhtmlpp::HtmlString html; libhtmlpp::print(condat.parse(),html); curres.send(curcon,html.c_str(),html.size()); curres.send(curreq,html.c_str(),html.size()); return; }else{ libhttppp::HttpResponse curres; Loading @@ -110,7 +113,7 @@ public: } httpauth.setRealm("httpauthtest"); httpauth.setAuth(&curres); curres.send(curcon,nullptr,0); curres.send(curreq,nullptr,0); return; } }else{ Loading @@ -118,7 +121,7 @@ public: curres.setState(HTTP404); curres.setVersion(HTTPVERSION(1.1)); curres.setContentType("text/html"); curres.send(curcon,nullptr,0); curres.send(curreq,nullptr,0); } }catch(libhttppp::HTTPException &e){ std::cerr << e.what() << std::endl; Loading examples/httpform.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -43,12 +43,19 @@ public: Controller(netplus::socket* serversocket) : HttpEvent(serversocket){ }; void RequestEvent(netplus::con *curcon){ libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon; libhtmlpp::HtmlString formdat; try { std::cout << "Parse Request" << std::endl; curcon->resizeRecvQueue(curreq->parse()); try{ curreq->resizeRecvQueue(curreq->parse()); }catch(...){ curreq->cleanRecvData(); std::cerr << "Illegal Request !"; return; } Multiform(*curreq, formdat); URlform(*curreq, formdat); std::cout << "Send answer" << std::endl; Loading @@ -69,6 +76,7 @@ private: void Multiform(libhttppp::HttpRequest& curreq, libhtmlpp::HtmlString& condat) { libhttppp::HttpForm curform; curform.parse(&curreq); if (curform.getBoundary()) { condat << "Boundary: " << curform.getBoundary() << "<br>"; for (libhttppp::HttpForm::MultipartFormData* curformdat = curform.getMultipartFormData(); curformdat; curformdat = curformdat->nextMultipartFormData()) { Loading examples/httphello.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -38,14 +38,13 @@ public: Controller(netplus::socket* serversocket) : HttpEvent(serversocket){ }; void RequestEvent(netplus::con *curcon){ void RequestEvent(libhttppp::HttpRequest *curreq){ try{ libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon; curcon->resizeRecvQueue(curreq->parse()); curreq->resizeRecvQueue(curreq->parse()); libhttppp::HttpResponse curres; const char *hello="<!DOCTYPE html><html><head><title>hello</title></head><body>Hello World</body></html>"; curres.setContentType("text/html"); curres.send(curcon,hello,strlen(hello)); curres.send(curreq,hello,strlen(hello)); }catch(libhttppp::HTTPException &e){ std::cerr << e.what() << std::endl; } Loading src/httpd.cpp +29 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,35 @@ void libhttppp::HttpEvent::deleteConnetion(netplus::con* curon){ delete curon; } void libhttppp::HttpEvent::RequestEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::ResponseEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::ConnectEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::DisconnectEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::RequestEvent(netplus::con* curcon){ RequestEvent((HttpRequest*)curcon); } void libhttppp::HttpEvent::ResponseEvent(netplus::con* curcon){ ResponseEvent((HttpRequest*)curcon); } void libhttppp::HttpEvent::ConnectEvent(netplus::con* curcon){ ConnectEvent((HttpRequest*)curcon); } void libhttppp::HttpEvent::DisconnectEvent(netplus::con* curcon){ DisconnectEvent((HttpRequest*)curcon); } libhttppp::HttpD::HttpD(int argc, char** argv) { HTTPDCmdController= &cmdplus::CmdController::getInstance(); Loading src/httpd.h +12 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ #include <netplus/socket.h> #include <netplus/eventapi.h> #include "http.h" #include "exception.h" #pragma once Loading @@ -43,6 +44,17 @@ namespace libhttppp { HttpEvent(netplus::socket *ssock); void CreateConnetion(netplus::con **curon); void deleteConnetion(netplus::con *curon); virtual void RequestEvent(HttpRequest *curreq); virtual void ResponseEvent(HttpRequest *curreq); virtual void ConnectEvent(HttpRequest *curreq); virtual void DisconnectEvent(HttpRequest *curreq); private: void RequestEvent(netplus::con *curcon); void ResponseEvent(netplus::con *curcon); void ConnectEvent(netplus::con *curcon); void DisconnectEvent(netplus::con *curcon); }; class HttpD { Loading Loading
examples/httpauth.cpp +11 −8 Original line number Diff line number Diff line Loading @@ -43,11 +43,14 @@ public: }; void RequestEvent(netplus::con *curcon){ void RequestEvent(libhttppp::HttpRequest *curreq){ try{ std::cout << "Parse Request\n" << std::endl; libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon; curcon->resizeRecvQueue(curreq->parse()); try{ curreq->resizeRecvQueue(curreq->parse()); }catch(...){ std::cerr << "Illegal request !" << std::endl; } const char *cururl=curreq->getRequestURL(); if(strncmp(cururl,"/",strlen(cururl))==0){ libhttppp::HttpResponse curres; Loading @@ -69,11 +72,11 @@ public: condat << "</ul></body></html>"; libhtmlpp::HtmlString html; libhtmlpp::print(condat.parse(),html); curres.send(curcon,html.c_str(),html.size()); curres.send(curreq,html.c_str(),html.size()); }else if(strncmp(cururl,"/httpbasicauth",strlen(cururl))==0 || strncmp(cururl,"/httpdigestauth",strlen(cururl))==0){ libhttppp::HttpAuth httpauth; httpauth.parse(&curreq); httpauth.parse(curreq); const char *username=httpauth.getUsername(); const char *password=httpauth.getPassword(); if(username && password){ Loading @@ -96,7 +99,7 @@ public: curres.setContentType("text/html"); libhtmlpp::HtmlString html; libhtmlpp::print(condat.parse(),html); curres.send(curcon,html.c_str(),html.size()); curres.send(curreq,html.c_str(),html.size()); return; }else{ libhttppp::HttpResponse curres; Loading @@ -110,7 +113,7 @@ public: } httpauth.setRealm("httpauthtest"); httpauth.setAuth(&curres); curres.send(curcon,nullptr,0); curres.send(curreq,nullptr,0); return; } }else{ Loading @@ -118,7 +121,7 @@ public: curres.setState(HTTP404); curres.setVersion(HTTPVERSION(1.1)); curres.setContentType("text/html"); curres.send(curcon,nullptr,0); curres.send(curreq,nullptr,0); } }catch(libhttppp::HTTPException &e){ std::cerr << e.what() << std::endl; Loading
examples/httpform.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -43,12 +43,19 @@ public: Controller(netplus::socket* serversocket) : HttpEvent(serversocket){ }; void RequestEvent(netplus::con *curcon){ libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon; libhtmlpp::HtmlString formdat; try { std::cout << "Parse Request" << std::endl; curcon->resizeRecvQueue(curreq->parse()); try{ curreq->resizeRecvQueue(curreq->parse()); }catch(...){ curreq->cleanRecvData(); std::cerr << "Illegal Request !"; return; } Multiform(*curreq, formdat); URlform(*curreq, formdat); std::cout << "Send answer" << std::endl; Loading @@ -69,6 +76,7 @@ private: void Multiform(libhttppp::HttpRequest& curreq, libhtmlpp::HtmlString& condat) { libhttppp::HttpForm curform; curform.parse(&curreq); if (curform.getBoundary()) { condat << "Boundary: " << curform.getBoundary() << "<br>"; for (libhttppp::HttpForm::MultipartFormData* curformdat = curform.getMultipartFormData(); curformdat; curformdat = curformdat->nextMultipartFormData()) { Loading
examples/httphello.cpp +3 −4 Original line number Diff line number Diff line Loading @@ -38,14 +38,13 @@ public: Controller(netplus::socket* serversocket) : HttpEvent(serversocket){ }; void RequestEvent(netplus::con *curcon){ void RequestEvent(libhttppp::HttpRequest *curreq){ try{ libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon; curcon->resizeRecvQueue(curreq->parse()); curreq->resizeRecvQueue(curreq->parse()); libhttppp::HttpResponse curres; const char *hello="<!DOCTYPE html><html><head><title>hello</title></head><body>Hello World</body></html>"; curres.setContentType("text/html"); curres.send(curcon,hello,strlen(hello)); curres.send(curreq,hello,strlen(hello)); }catch(libhttppp::HTTPException &e){ std::cerr << e.what() << std::endl; } Loading
src/httpd.cpp +29 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,35 @@ void libhttppp::HttpEvent::deleteConnetion(netplus::con* curon){ delete curon; } void libhttppp::HttpEvent::RequestEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::ResponseEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::ConnectEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::DisconnectEvent(HttpRequest *curreq){ } void libhttppp::HttpEvent::RequestEvent(netplus::con* curcon){ RequestEvent((HttpRequest*)curcon); } void libhttppp::HttpEvent::ResponseEvent(netplus::con* curcon){ ResponseEvent((HttpRequest*)curcon); } void libhttppp::HttpEvent::ConnectEvent(netplus::con* curcon){ ConnectEvent((HttpRequest*)curcon); } void libhttppp::HttpEvent::DisconnectEvent(netplus::con* curcon){ DisconnectEvent((HttpRequest*)curcon); } libhttppp::HttpD::HttpD(int argc, char** argv) { HTTPDCmdController= &cmdplus::CmdController::getInstance(); Loading
src/httpd.h +12 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ #include <netplus/socket.h> #include <netplus/eventapi.h> #include "http.h" #include "exception.h" #pragma once Loading @@ -43,6 +44,17 @@ namespace libhttppp { HttpEvent(netplus::socket *ssock); void CreateConnetion(netplus::con **curon); void deleteConnetion(netplus::con *curon); virtual void RequestEvent(HttpRequest *curreq); virtual void ResponseEvent(HttpRequest *curreq); virtual void ConnectEvent(HttpRequest *curreq); virtual void DisconnectEvent(HttpRequest *curreq); private: void RequestEvent(netplus::con *curcon); void ResponseEvent(netplus::con *curcon); void ConnectEvent(netplus::con *curcon); void DisconnectEvent(netplus::con *curcon); }; class HttpD { Loading