Commit 81487612 authored by jan.koester's avatar jan.koester
Browse files

now automaticly parse header

parent 6c4b8b33
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -46,11 +46,6 @@ public:
    void RequestEvent(libhttppp::HttpRequest *curreq){
        try{
            std::cout << "Parse Request\n" << std::endl;
            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;
+4 −7
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "http.h"
#include "httpd.h"

void sendResponse(netplus::con *curcon,libhttppp::HttpRequest *curreq) {
void sendResponse(libhttppp::HttpRequest *curreq) {
     libhttppp::HttpResponse curres;
     curres.setState(HTTP200);
     curres.setVersion(HTTPVERSION(1.1));
@@ -61,7 +61,7 @@ void sendResponse(netplus::con *curcon,libhttppp::HttpRequest *curreq) {
     condat  << "</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());
};

class Controller : public libhttppp::HttpEvent {
@@ -69,13 +69,10 @@ public:
    Controller(netplus::socket* serversocket) : HttpEvent(serversocket){
        
    };
    void RequestEvent(netplus::con *curcon){
    void RequestEvent(libhttppp::HttpRequest *curreq){
        try{
            std::cout << "Parse Request" << std::endl;
            libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon;
            curcon->resizeRecvQueue(curreq->parse());
            std::cout << "Send answer" << std::endl;
            sendResponse(curcon,curreq);
            sendResponse(curreq);
        }catch(libhttppp::HTTPException &e){
            std::cerr << e.what() << std::endl;
        }
+11 −20
Original line number Diff line number Diff line
@@ -44,22 +44,13 @@ public:
        
    };

    void RequestEvent(netplus::con *curcon){
            libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon;
    void RequestEvent(libhttppp::HttpRequest* curreq ){
            libhtmlpp::HtmlString formdat;
            try {
                std::cout << "Parse Request" << std::endl;
                try{
                    curreq->resizeRecvQueue(curreq->parse());
                }catch(...){
                    curreq->cleanRecvData();
                    std::cerr << "Illegal Request !";
                    return;
                }
                Multiform(*curreq, formdat);
                URlform(*curreq, formdat);
                Multiform(curreq, formdat);
                URlform(curreq, formdat);
                std::cout << "Send answer" << std::endl;
                sendResponse(curcon, formdat);
                sendResponse(curreq, formdat);
                
            }
            catch (libhttppp::HTTPException& e) {
@@ -68,14 +59,14 @@ public:
                    curres.setState(HTTP500);
                    curres.setVersion(HTTPVERSION(2.0));
                    curres.setContentLength(0);
                    curres.send(curcon, e.what(), strlen(e.what()));
                    curres.send(curreq, e.what(), strlen(e.what()));
                }
            }
    }
private:
    void Multiform(libhttppp::HttpRequest& curreq, libhtmlpp::HtmlString& condat) {
    void Multiform(libhttppp::HttpRequest* curreq, libhtmlpp::HtmlString& condat) {
        libhttppp::HttpForm curform;
        curform.parse(&curreq);
        curform.parse(curreq);

        if (curform.getBoundary()) {
            condat << "Boundary: " << curform.getBoundary() << "<br>";
@@ -103,9 +94,9 @@ private:
        }
    };

    void URlform(libhttppp::HttpRequest& curreq, libhtmlpp::HtmlString& condat) {
    void URlform(libhttppp::HttpRequest* curreq, libhtmlpp::HtmlString& condat) {
        libhttppp::HttpForm curform;
        curform.parse(&curreq);
        curform.parse(curreq);
        if (curform.getUrlcodedFormData()) {
            for (libhttppp::HttpForm::UrlcodedFormData* cururlform = curform.getUrlcodedFormData(); cururlform;
                cururlform = cururlform->nextUrlcodedFormData()) {
@@ -117,7 +108,7 @@ private:
        }
    };

    void sendResponse(netplus::con* curcon, libhtmlpp::HtmlString formdat) {
    void sendResponse(libhttppp::HttpRequest* curreq, libhtmlpp::HtmlString formdat) {
        libhttppp::HttpResponse curres;
        libhtmlpp::HtmlString condat;
        curres.setState(HTTP200);
@@ -189,7 +180,7 @@ private:
        condat << "</div></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());
    };
};

+0 −1
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ public:
    };
    void RequestEvent(libhttppp::HttpRequest *curreq){
        try{
            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");
+4 −7
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "http.h"
#include "httpd.h"

void sendResponse(netplus::con *curcon,libhttppp::HttpRequest *curreq) {
void sendResponse(libhttppp::HttpRequest *curreq) {
     libhttppp::HttpResponse curres;
     curres.setState(HTTP200);
     curres.setVersion(HTTPVERSION(1.1));
@@ -59,7 +59,7 @@ void sendResponse(netplus::con *curcon,libhttppp::HttpRequest *curreq) {
     condat  << "</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());
};

class Controller : public libhttppp::HttpEvent {
@@ -67,13 +67,10 @@ public:
    Controller(netplus::socket* serversocket) : HttpEvent(serversocket){
        
    };
    void RequestEvent(netplus::con *curcon){
    void RequestEvent(libhttppp::HttpRequest *curreq){
        try{
            std::cout << "Parse Request" << std::endl;
            libhttppp::HttpRequest *curreq =(libhttppp::HttpRequest *) curcon;
            curcon->resizeRecvQueue(curreq->parse());
            std::cout << "Send answer"  << std::endl;
            sendResponse(curcon,curreq);
            sendResponse(curreq);
        }catch(libhttppp::HTTPException &e){
            std::cerr << e.what() << std::endl;
            throw e;
Loading