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

fixed memleak

removed connection size limit
parent e5e78bf8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ CMake Binary=/usr/bin/cmake
CMake Executable=/usr/bin/cmake
Environment Profile=
Extra Arguments=
Install Directory=
Install Directory=/usr/local
Runtime=Host System

[Project]
+0 −22
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@

netplus::condata<char>::condata() : vector(){
  pos=0;
  limit=131072;
}


@@ -63,11 +62,6 @@ void netplus::condata<char>::resize(size_t size_c){
}

void netplus::condata<char>::append(const char* data, size_t datalen){
  if(this->size()+datalen > limit ){
      NetException excep;
      excep[NetException::Note] << "condata: max size reached !";
      throw excep;
  }
   std::copy(data,data+datalen,std::inserter<std::vector<char,condataAlloc<char>>>(*this,end()));
}

@@ -89,26 +83,10 @@ size_t netplus::condata<char>::search(const char* word){
}

void netplus::condata<char>::push_back(char a){
  if(this->size()+sizeof(a) > limit ){
      NetException excep;
      excep[NetException::Note] << "condata: max size reached !";
      throw excep;
  }
  std::vector<char,condataAlloc<char>>push_back(a);
}


void netplus::condata<char>::setlimit(size_t size){
  limit = size *1024;
}


size_t netplus::condata<char>::getlimit(){
  return limit;

}



netplus::con::con(){
    state=0;
+4 −11
Original line number Diff line number Diff line
@@ -127,14 +127,7 @@ namespace netplus {
            void     append(const char *data,size_t datalen);
            size_t   search(const char *word);
            void     push_back(char a);

            void    setlimit(size_t size);
            size_t  getlimit();

            size_t   pos;

        private:
            size_t limit;
        };

        class con {
+1 −1
Original line number Diff line number Diff line
@@ -204,9 +204,9 @@ namespace netplus {

        void ReadEventHandler(int pos,const int tid,void *args) {
            con *rcon = (con*)_Events[pos].data.ptr;
            std::shared_ptr<char[BLOCKSIZE]> buf(new char[BLOCKSIZE]);

            try{
                std::shared_ptr<char> buf(new char[BLOCKSIZE]);
                size_t rcvsize = _ServerSocket->recvData(rcon->csock, buf.get(), BLOCKSIZE);

                rcon->lasteventime = time(nullptr);
+1 −1
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ netplus::tcp::tcp() : socket() {
    _Type=sockettype::TCP;
}

netplus::tcp::tcp(SOCKET sock) : socket() {
netplus::tcp::tcp(SOCKET sock) {
    _SocketPtr=::malloc(sizeof(sockaddr));
    _SocketPtrSize=sizeof(sockaddr);
     ((struct sockaddr*)_SocketPtr)->sa_family=AF_UNSPEC;