Commit 018a2d28 authored by jan.koester's avatar jan.koester
Browse files

much work

parent a253682e
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -233,12 +233,12 @@ namespace blogi {
                cpos=0;

                try{
                    if(res.getTransferEncoding() &&
                        strcmp(res.getTransferEncoding(),"chunked")==0){
                    for(libhttppp::HttpHeader::HeaderData::Values *chdat=res.getTransferEncoding(); chdat; chdat=chdat->nextvalue()){
                        if(chdat->getvalue()=="chunked")
                            chunked=true;
                    }else{
                        throw "e";
                    }
                    if(!chunked)
                        throw "e";
                }catch(...){
                    rlen=res.getContentLength();
                    json.resize(rlen);
+6 −5
Original line number Diff line number Diff line
@@ -189,13 +189,14 @@ namespace blogi {
                memmove(data.get(),data.get()+hsize,recv);

                cpos=0;

                try{
                    if(strcmp(res.getTransferEncoding(),"chunked")==0){
                        chunklen=readchunk(data.get(),recv,cpos);
                    for(libhttppp::HttpHeader::HeaderData::Values *chdat=res.getTransferEncoding(); chdat; chdat=chdat->nextvalue()){
                        if(chdat->getvalue()=="chunked")
                            chunked=true;
                    }else{
                        throw;
                    }
                    if(!chunked)
                        throw "e";
                }catch(...){
                    rlen=res.getContentLength();
                    json.resize(rlen);
+6 −0
Original line number Diff line number Diff line
@@ -302,6 +302,9 @@ void blogi::Blogi::settingsPage(libhttppp::HttpRequest* curreq,const int tid,con
    curres.send(curreq,out.c_str(),out.size());
}

void blogi::Blogi::searchPage(libhttppp::HttpRequest* curreq, const int tid, const char* sessionid){

}

void blogi::Blogi::RequestEvent(libhttppp::HttpRequest *curreq,const int tid,ULONG_PTR args){
    char url[512];
@@ -396,6 +399,9 @@ RETRY_REQUEST:
            }else if(strncmp(curreq->getRequestURL(),PlgArgs->config->buildurl("settings",url,512),strlen(PlgArgs->config->buildurl("settings",url,512)))==0){
                settingsPage(curreq,tid,sessid);
                return;
            }else if(strncmp(curreq->getRequestURL(),PlgArgs->config->buildurl("search",url,512),strlen(PlgArgs->config->buildurl("search",url,512)))==0){
                searchPage(curreq,tid,sessid);
                return;
            }else if(strncmp(curreq->getRequestURL(),PlgArgs->config->buildurl("editor",url,512),strlen(PlgArgs->config->buildurl("editor",url,512)))==0){
                PlgArgs->edit->Controller(curreq);
                return;
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ namespace blogi {
        void loginPage(libhttppp::HttpRequest *curreq,const int tid,const char *sessionid);
        void logoutPage(libhttppp::HttpRequest *curreq,const int tid,const char *sessionid);
        void settingsPage(libhttppp::HttpRequest *curreq,const int tid,const char *sessionid);
        void searchPage(libhttppp::HttpRequest *curreq,const int tid,const char *sessionid);
        void RequestEvent(libhttppp::HttpRequest *curreq,const int tid,ULONG_PTR args);
        void ResponseEvent(libhttppp::HttpRequest *curreq,const int tid,ULONG_PTR args);
    private:
+57 −0
Original line number Diff line number Diff line
@@ -33,6 +33,59 @@

#include "plugin.h"

blogi::SearchRet::SearchRet(){
    _firstData=nullptr;
    _lastData=nullptr;
}

blogi::SearchRet::~SearchRet(){
    clear();
}

blogi::SearchRet::Data * blogi::SearchRet::getfirstData(){
    return _firstData;
}

void blogi::SearchRet::clear(){
    Data *curdat=_firstData;
    while(curdat){
        Data *nxtdat=curdat->nextData();
        curdat->_next=nullptr;
        delete curdat;
        curdat=nxtdat;
    }
}

void blogi::SearchRet::push_back(const blogi::SearchRet::Data& dat){
    if(!_firstData){
        _firstData=new Data(dat);
        _lastData=_firstData;
    }else{
        _lastData->_next=new Data(dat);
        _lastData=_lastData->_next;
    }
}

blogi::SearchRet::Data::Data(){
    _next=nullptr;
}

blogi::SearchRet::Data::Data(const blogi::SearchRet::Data& dat){
     title=dat.title;
     anchor=dat.anchor;
     std::copy(dat.text.begin(),dat.text.end(),std::back_inserter(text));
     _next=nullptr;
}


blogi::SearchRet::Data::~Data(){
}

blogi::SearchRet::Data* blogi::SearchRet::Data::nextData(){
    return _next;
}


//musl hack
blogi::PluginApi::~PluginApi(){
}
@@ -61,6 +114,10 @@ bool blogi::PluginApi::Response(const int tid,libhttppp::HttpRequest* req){
    return false;
}

void blogi::PluginApi::Search(const int tid, const char* word, blogi::SearchRet &result, const char* sessionid){
    return;
}


void blogi::PluginApi::setArgs(blogi::PluginArgs* args){
    Args=args;
Loading