Loading plugins/media/media.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -561,10 +561,6 @@ namespace blogi { size_t ssize = msize-req->SendData.pos < BLOCKSIZE ? msize-req->SendData.pos : BLOCKSIZE; if(req->SendData.getlimit() < ssize){ return true; } if(req->RecvData.pos<msize){ _store->load(tid,req,suuid.data(),data,req->RecvData.pos,ssize); req->SendData.append(data.data(),data.size()); Loading plugins/nginxfiler/filer.cpp +36 −58 Original line number Diff line number Diff line Loading @@ -147,6 +147,8 @@ namespace blogi { bool Controller(const int tid,libhttppp::HttpRequest *req,libhtmlpp::HtmlElement *page){ char url[512]; struct json_object *ndir=nullptr; if(strncmp(req->getRequestURL(),Args->config->buildurl("nginxfiler",url,512),strlen(Args->config->buildurl("nginxfiler",url,512)))!=0){ return false; } Loading Loading @@ -182,34 +184,20 @@ namespace blogi { *nreq.setData("host") << _NHost.c_str() << ":" << _NPort; *nreq.setData("accept") = "text/json"; *nreq.setData("user-agent") = "blogi/1.0 (Alpha Version 0.1)"; nreq.send(srvsock.get(),cltsock.get()); nreq.send(cltsock.get(),srvsock.get()); std::shared_ptr<char> data(new char[16384]); int recv,tries=0,chunklen=0; try{ for(;;){ try{ recv=srvsock->recvData(cltsock.get(),data.get(),16384); break; }catch(netplus::NetException &e){ if(e.getErrorType()==netplus::NetException::Note){ std::this_thread::sleep_for(std::chrono::milliseconds(1000)); continue; } e[netplus::NetException::Error] << "nginxfiler: can't reach nginx server !"; throw e; } } }catch(netplus::NetException &e){ libhttppp::HTTPException he; he[libhttppp::HTTPException::Error] << e.what(); throw he; } std::string json; libhttppp::HttpResponse res; size_t hsize=0,cpos; Loading @@ -228,7 +216,7 @@ namespace blogi { try{ if(strcmp(res.getTransferEncoding(),"chunked")==0){ chunklen=readchunk(data.get(),recv,cpos); chunklen=readchunk(data.get(),recv,++cpos); chunked=true; }else{ throw; Loading Loading @@ -272,7 +260,8 @@ namespace blogi { size_t readed=0; for(;;){ if(recv - cpos > 0){ std::cout << "test" << std::endl; if(recv - cpos <= 0){ if(readed==chunklen){ if( (chunklen=readchunk(data.get(),recv,cpos)) == 0 ){ Loading @@ -287,57 +276,42 @@ namespace blogi { cpos+=len; readed+=len; }else{ try{ for(;;){ cpos=0; try{ recv=srvsock->recvData(cltsock.get(),data.get(),16384); break; }catch(netplus::NetException &e){ if(e.getErrorType()==netplus::NetException::Note){ std::this_thread::sleep_for(std::chrono::milliseconds(100)); continue; } e[netplus::NetException::Error] << "nginxfiler: can't reach nginx server !"; throw e; } } cpos=0; }catch(netplus::NetException &e){ libhttppp::HTTPException ee; ee[libhttppp::HTTPException::Error] << e.what(); throw ee; libhttppp::HTTPException eh; eh[netplus::NetException::Error] << "nginxfiler: can't reach nginx server: " << eh.what(); throw eh; } } }; } struct json_object *ndir; ndir = json_tokener_parse(json.c_str()); std::cout << "\n"<< json << std::endl; std::cout << json << std::endl; enum json_tokener_error jerr = json_tokener_success; if(!ndir){ libhttppp::HTTPException e; e[libhttppp::HTTPException::Error] << "nginxfiler: counld't read json !"; throw e; ndir = json_tokener_parse_verbose(json.c_str(),&jerr); if(jerr != json_tokener_success){ libhttppp::HTTPException ej; ej[libhttppp::HTTPException::Error] << "nginxfiler: counld't read json :" << json_tokener_error_desc(jerr); throw ej; } std::cout << "hello" << std::endl; libhtmlpp::HtmlString fileHtml,out; std::string sid; try{ RenderUI(path,ndir,fileHtml); libhtmlpp::HtmlElement *fel=fileHtml.parse(); if(page->getElementbyID("main") && fel) page->getElementbyID("main")->appendChild(fel); }catch(libhtmlpp::HTMLException &e){ libhttppp::HTTPException ee; ee[libhttppp::HTTPException::Error] << e.what(); throw ee; } Args->theme->printSite(tid,out,page,req->getRequestURL(),Args->auth->isLoggedIn(tid,req,sid)); Loading @@ -353,6 +327,7 @@ namespace blogi { curres.setState(HTTP500); curres.send(req, e.what(),strlen(e.what())); } while (json_object_put(ndir) != 1){}; return true; } private: Loading @@ -361,7 +336,14 @@ namespace blogi { char value[512]; while( (pos < datasize) && data[++pos]!='\r'){}; while( (pos < datasize) && data[pos]!='\r'){ if (!isxdigit(data[pos])){ libhttppp::HTTPException ex; ex[libhttppp::HTTPException::Error] << "nginxfiler: wrong chuncklen at sign: " << pos; throw ex; } ++pos; }; int len=pos-start; Loading @@ -375,10 +357,6 @@ namespace blogi { value[len]='\0'; if (len < 1) { return 0; } int result=strtol(value, NULL, 16); pos+=2; Loading Loading
plugins/media/media.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -561,10 +561,6 @@ namespace blogi { size_t ssize = msize-req->SendData.pos < BLOCKSIZE ? msize-req->SendData.pos : BLOCKSIZE; if(req->SendData.getlimit() < ssize){ return true; } if(req->RecvData.pos<msize){ _store->load(tid,req,suuid.data(),data,req->RecvData.pos,ssize); req->SendData.append(data.data(),data.size()); Loading
plugins/nginxfiler/filer.cpp +36 −58 Original line number Diff line number Diff line Loading @@ -147,6 +147,8 @@ namespace blogi { bool Controller(const int tid,libhttppp::HttpRequest *req,libhtmlpp::HtmlElement *page){ char url[512]; struct json_object *ndir=nullptr; if(strncmp(req->getRequestURL(),Args->config->buildurl("nginxfiler",url,512),strlen(Args->config->buildurl("nginxfiler",url,512)))!=0){ return false; } Loading Loading @@ -182,34 +184,20 @@ namespace blogi { *nreq.setData("host") << _NHost.c_str() << ":" << _NPort; *nreq.setData("accept") = "text/json"; *nreq.setData("user-agent") = "blogi/1.0 (Alpha Version 0.1)"; nreq.send(srvsock.get(),cltsock.get()); nreq.send(cltsock.get(),srvsock.get()); std::shared_ptr<char> data(new char[16384]); int recv,tries=0,chunklen=0; try{ for(;;){ try{ recv=srvsock->recvData(cltsock.get(),data.get(),16384); break; }catch(netplus::NetException &e){ if(e.getErrorType()==netplus::NetException::Note){ std::this_thread::sleep_for(std::chrono::milliseconds(1000)); continue; } e[netplus::NetException::Error] << "nginxfiler: can't reach nginx server !"; throw e; } } }catch(netplus::NetException &e){ libhttppp::HTTPException he; he[libhttppp::HTTPException::Error] << e.what(); throw he; } std::string json; libhttppp::HttpResponse res; size_t hsize=0,cpos; Loading @@ -228,7 +216,7 @@ namespace blogi { try{ if(strcmp(res.getTransferEncoding(),"chunked")==0){ chunklen=readchunk(data.get(),recv,cpos); chunklen=readchunk(data.get(),recv,++cpos); chunked=true; }else{ throw; Loading Loading @@ -272,7 +260,8 @@ namespace blogi { size_t readed=0; for(;;){ if(recv - cpos > 0){ std::cout << "test" << std::endl; if(recv - cpos <= 0){ if(readed==chunklen){ if( (chunklen=readchunk(data.get(),recv,cpos)) == 0 ){ Loading @@ -287,57 +276,42 @@ namespace blogi { cpos+=len; readed+=len; }else{ try{ for(;;){ cpos=0; try{ recv=srvsock->recvData(cltsock.get(),data.get(),16384); break; }catch(netplus::NetException &e){ if(e.getErrorType()==netplus::NetException::Note){ std::this_thread::sleep_for(std::chrono::milliseconds(100)); continue; } e[netplus::NetException::Error] << "nginxfiler: can't reach nginx server !"; throw e; } } cpos=0; }catch(netplus::NetException &e){ libhttppp::HTTPException ee; ee[libhttppp::HTTPException::Error] << e.what(); throw ee; libhttppp::HTTPException eh; eh[netplus::NetException::Error] << "nginxfiler: can't reach nginx server: " << eh.what(); throw eh; } } }; } struct json_object *ndir; ndir = json_tokener_parse(json.c_str()); std::cout << "\n"<< json << std::endl; std::cout << json << std::endl; enum json_tokener_error jerr = json_tokener_success; if(!ndir){ libhttppp::HTTPException e; e[libhttppp::HTTPException::Error] << "nginxfiler: counld't read json !"; throw e; ndir = json_tokener_parse_verbose(json.c_str(),&jerr); if(jerr != json_tokener_success){ libhttppp::HTTPException ej; ej[libhttppp::HTTPException::Error] << "nginxfiler: counld't read json :" << json_tokener_error_desc(jerr); throw ej; } std::cout << "hello" << std::endl; libhtmlpp::HtmlString fileHtml,out; std::string sid; try{ RenderUI(path,ndir,fileHtml); libhtmlpp::HtmlElement *fel=fileHtml.parse(); if(page->getElementbyID("main") && fel) page->getElementbyID("main")->appendChild(fel); }catch(libhtmlpp::HTMLException &e){ libhttppp::HTTPException ee; ee[libhttppp::HTTPException::Error] << e.what(); throw ee; } Args->theme->printSite(tid,out,page,req->getRequestURL(),Args->auth->isLoggedIn(tid,req,sid)); Loading @@ -353,6 +327,7 @@ namespace blogi { curres.setState(HTTP500); curres.send(req, e.what(),strlen(e.what())); } while (json_object_put(ndir) != 1){}; return true; } private: Loading @@ -361,7 +336,14 @@ namespace blogi { char value[512]; while( (pos < datasize) && data[++pos]!='\r'){}; while( (pos < datasize) && data[pos]!='\r'){ if (!isxdigit(data[pos])){ libhttppp::HTTPException ex; ex[libhttppp::HTTPException::Error] << "nginxfiler: wrong chuncklen at sign: " << pos; throw ex; } ++pos; }; int len=pos-start; Loading @@ -375,10 +357,6 @@ namespace blogi { value[len]='\0'; if (len < 1) { return 0; } int result=strtol(value, NULL, 16); pos+=2; Loading