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

bugfixes

parent fd4ca406
Loading
Loading
Loading
Loading
+4 −5
Changes for examples/httpclient.cpp: 4 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -43,8 +43,8 @@ int main(int argc, char** argv){
    netplus::tcp srvsock(argv[1],atoi(argv[2]),1,0);
    cltsock=srvsock.connect();

    libhttppp::HttpRequest req;
    try{
      libhttppp::HttpRequest req;
      req.setRequestType(GETREQUEST);
      req.setRequestURL(argv[3]);
      req.setRequestVersion(HTTPVERSION(1.1));
@@ -63,7 +63,7 @@ int main(int argc, char** argv){

    std::string html;
    libhttppp::HttpResponse res;
    size_t amount = 0,rlen=-1,len=recv;
    size_t amount = 0,rlen=0,len=recv;

    try {
      size_t hsize=res.parse(data,len);
@@ -75,9 +75,7 @@ int main(int argc, char** argv){
      try{
         rlen=res.getContentLength();
         html.resize(rlen);
      }catch(...){
         rlen=-1;
      }
      }catch(...){}
    }catch(libhttppp::HTTPException &e){
      std::cerr << e.what() << std::endl;
    };
@@ -92,6 +90,7 @@ int main(int argc, char** argv){
    delete cltsock;
    if(!html.empty())
      std::cout << html << std::endl;
    return 0;
  }catch(netplus::NetException &exp){
    delete cltsock;
    std::cerr << exp.what() <<std::endl;
+3 −3
Changes for src/http.cpp: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -176,12 +176,12 @@ size_t libhttppp::HttpHeader::getHeaderSize(){

libhttppp::HttpHeader::HeaderData::HeaderData(const char *key){
    HTTPException excep;
    _nextHeaderData=nullptr;
    if(!key){
        excep[HTTPException::Error] << "no headerdata key set can't do this";
        throw excep;
    }
    _Key = key;
    _nextHeaderData=nullptr;
}

libhttppp::HttpHeader::HeaderData::~HeaderData(){
@@ -194,7 +194,7 @@ libhttppp::HttpHeader::~HttpHeader(){

libhttppp::HttpResponse::HttpResponse() : HttpHeader(){
  setState(HTTP200);
  setVersion(HTTPVERSION(2.0));
  setVersion(HTTPVERSION(1.1));
  _ContentType=nullptr;
  _ContentLength=nullptr;
  _Connection=setData("connection");
@@ -357,7 +357,7 @@ size_t libhttppp::HttpResponse::parse(const char *data,size_t inlen){
          size_t valuelen=pos-delimeter;
          if(pos > 0 && valuelen <=helen){
            std::string value;
            size_t vstart=++delimeter;
            ++delimeter;
            value.resize(valuelen);
            std::copy(data+delimeter,data+pos,std::begin(value));
            for (size_t it = 0; it < valuelen; ++it) {
+3 −4
Changes for src/http.h: 3 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -46,10 +46,9 @@ namespace libhttppp {
      HeaderData &operator<<(const char *value);
      HeaderData &operator<<(size_t value);
      HeaderData &operator<<(int value);
    protected:
    private:
      HeaderData(const char *key);
      ~HeaderData();
    private:
      std::string  _Key;
      std::string  _Value;
      HeaderData   *_nextHeaderData;
@@ -76,7 +75,7 @@ namespace libhttppp {
    size_t      getHeaderSize();
  protected:
    HttpHeader();
    virtual ~HttpHeader();
    ~HttpHeader();
    HeaderData *_firstHeaderData;
    HeaderData *_lastHeaderData;
  };
@@ -84,7 +83,7 @@ namespace libhttppp {
  class HttpResponse : public HttpHeader {
  public:
    HttpResponse();
    ~HttpResponse();
    virtual ~HttpResponse();

    /*server methods*/
    void   setState(const char *httpstate);