Loading examples/httpform.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,8 @@ private: condat << "Key: " << curdispo->getKey() << " Value: " << curdispo->getValue(); << curdispo->getValue() << " "; } condat << "<br>"; if (!curformdat->Value.empty()){ Loading src/http.cpp +22 −10 Original line number Diff line number Diff line Loading @@ -899,12 +899,17 @@ void libhttppp::HttpForm::_parseMulitpart(const netplus::condata<char> &data){ } } } #include<iostream> void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t start, size_t end){ size_t findel=data.search("\r\n\r\n",start); size_t findel=data.search("\r\n\r\n",start),findelsize=4; if(findel==std::string::npos){ findel=data.search("\n\n",start); findelsize=2; } if(++findel==std::string::npos) if(findel==std::string::npos) return; size_t ctl=std::string::npos,ctlt=std::string::npos; Loading @@ -925,7 +930,7 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t ctlt=scl; } if(data[scl]=='\r' && ctl!=std::string::npos && ctlt!=std::string::npos){ if(ctl!=std::string::npos && ctlt!=std::string::npos){ MultipartForm::Data::Content content; std::copy(data.begin()+ctl,data.begin()+ctlt, std::inserter<std::vector<char>>(content._Key,content._Key.begin())); Loading @@ -939,7 +944,7 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t while(data[++ctlt]==' '); std::copy(data.begin()+ctlt,data.begin()+scl, std::copy(data.begin()+ctlt,data.begin()+findel, std::inserter<std::vector<char>>(content._Value,content._Value.begin())); content._Value.push_back('\0'); Loading @@ -959,12 +964,12 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t } } auto searchElement=[](int startpos,size_t size,const char* word,std::vector<char> &sdata){ auto searchLastElement=[](int startpos,size_t size,const char* word,std::vector<char> &sdata){ size_t wsize=strlen(word); for(size_t i=startpos; i<size; ++i){ for(size_t ii=0; ii<=wsize; ++ii){ if(ii==wsize){ return i-wsize; return i; } if(sdata.at(i)==word[ii]){ ++i; Loading @@ -977,8 +982,12 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t }; if(cdispo){ size_t ifdp= searchLastElement(0,cdispo->_Value.size(),"form-data",cdispo->_Value); std::cout << ifdp << std::endl; if(ifdp!=std::string::npos){ size_t ifdp= searchElement(0,cdispo->_Value.size(),"form-data",cdispo->_Value); size_t scss=std::string::npos,scse=std::string::npos; Loading Loading @@ -1039,8 +1048,11 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t } } } --end; if(MultipartFormData._lastData) std::copy(data.begin()+(findel+3),data.begin()+end,std::inserter<std::vector<char>>(MultipartFormData._lastData->Value, std::copy(data.begin()+(findel+findelsize),data.begin()+end,std::inserter<std::vector<char>>(MultipartFormData._lastData->Value, MultipartFormData._lastData->Value.begin())); } Loading Loading
examples/httpform.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,8 @@ private: condat << "Key: " << curdispo->getKey() << " Value: " << curdispo->getValue(); << curdispo->getValue() << " "; } condat << "<br>"; if (!curformdat->Value.empty()){ Loading
src/http.cpp +22 −10 Original line number Diff line number Diff line Loading @@ -899,12 +899,17 @@ void libhttppp::HttpForm::_parseMulitpart(const netplus::condata<char> &data){ } } } #include<iostream> void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t start, size_t end){ size_t findel=data.search("\r\n\r\n",start); size_t findel=data.search("\r\n\r\n",start),findelsize=4; if(findel==std::string::npos){ findel=data.search("\n\n",start); findelsize=2; } if(++findel==std::string::npos) if(findel==std::string::npos) return; size_t ctl=std::string::npos,ctlt=std::string::npos; Loading @@ -925,7 +930,7 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t ctlt=scl; } if(data[scl]=='\r' && ctl!=std::string::npos && ctlt!=std::string::npos){ if(ctl!=std::string::npos && ctlt!=std::string::npos){ MultipartForm::Data::Content content; std::copy(data.begin()+ctl,data.begin()+ctlt, std::inserter<std::vector<char>>(content._Key,content._Key.begin())); Loading @@ -939,7 +944,7 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t while(data[++ctlt]==' '); std::copy(data.begin()+ctlt,data.begin()+scl, std::copy(data.begin()+ctlt,data.begin()+findel, std::inserter<std::vector<char>>(content._Value,content._Value.begin())); content._Value.push_back('\0'); Loading @@ -959,12 +964,12 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t } } auto searchElement=[](int startpos,size_t size,const char* word,std::vector<char> &sdata){ auto searchLastElement=[](int startpos,size_t size,const char* word,std::vector<char> &sdata){ size_t wsize=strlen(word); for(size_t i=startpos; i<size; ++i){ for(size_t ii=0; ii<=wsize; ++ii){ if(ii==wsize){ return i-wsize; return i; } if(sdata.at(i)==word[ii]){ ++i; Loading @@ -977,8 +982,12 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t }; if(cdispo){ size_t ifdp= searchLastElement(0,cdispo->_Value.size(),"form-data",cdispo->_Value); std::cout << ifdp << std::endl; if(ifdp!=std::string::npos){ size_t ifdp= searchElement(0,cdispo->_Value.size(),"form-data",cdispo->_Value); size_t scss=std::string::npos,scse=std::string::npos; Loading Loading @@ -1039,8 +1048,11 @@ void libhttppp::HttpForm::_parseMultiSection(netplus::condata<char> &data,size_t } } } --end; if(MultipartFormData._lastData) std::copy(data.begin()+(findel+3),data.begin()+end,std::inserter<std::vector<char>>(MultipartFormData._lastData->Value, std::copy(data.begin()+(findel+findelsize),data.begin()+end,std::inserter<std::vector<char>>(MultipartFormData._lastData->Value, MultipartFormData._lastData->Value.begin())); } Loading