X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d63d2c3c6cbbd574dda4f8b00ebe6c661735edd5..9e0b367cd7017f8abf3e3ea804966ce6e23a768f:/lib/network/socket.cpp diff --git a/lib/network/socket.cpp b/lib/network/socket.cpp index 9de0ca0a..162ead81 100644 --- a/lib/network/socket.cpp +++ b/lib/network/socket.cpp @@ -10,7 +10,6 @@ void eSocket::close() if (writebuffer.empty()) { int wasconnected=(mystate==Connection) || (mystate==Closing); - delete rsn; rsn=0; ::close(socketdesc); socketdesc=-1; @@ -43,16 +42,16 @@ void eSocket::inject(const char *data, int len) readyRead_(); } -eString eSocket::readLine() +std::string eSocket::readLine() { int size=readbuffer.searchchr('\n'); if (size == -1) - return eString(); + return std::string(); size++; // ich will auch das \n char buffer[size+1]; buffer[size]=0; readbuffer.read(buffer, size); - return eString(buffer); + return std::string(buffer); } bool eSocket::canReadLine() @@ -87,9 +86,8 @@ int eSocket::setSocket(int s, int iss, eMainloop *ml) fcntl(socketdesc, F_SETFL, O_NONBLOCK); last_break = 0xFFFFFFFF; - if (rsn) - delete rsn; - rsn=new eSocketNotifier(ml, getDescriptor(), + rsn = 0; + rsn=eSocketNotifier::create(ml, getDescriptor(), eSocketNotifier::Read|eSocketNotifier::Hungup); CONNECT(rsn->activated, eSocket::notifier); return 0; @@ -225,7 +223,7 @@ int eSocket::getDescriptor() return socketdesc; } -int eSocket::connectToHost(eString hostname, int port) +int eSocket::connectToHost(std::string hostname, int port) { struct hostent *server; int res; @@ -269,6 +267,7 @@ int eSocket::connectToHost(eString hostname, int port) eSocket::eSocket(eMainloop *ml): readbuffer(32768), writebuffer(32768), rsn(0) { + ASSERT(ml); int s=socket(AF_INET, SOCK_STREAM, 0); #if 0 eDebug("[SOCKET]: initalized socket %d", socketdesc); @@ -277,7 +276,7 @@ eSocket::eSocket(eMainloop *ml): readbuffer(32768), writebuffer(32768), rsn(0) setSocket(s, 1, ml); } -eSocket::eSocket(int socket, int issocket, eMainloop *ml): readbuffer(32768), writebuffer(32768), rsn(0) +eSocket::eSocket(int socket, int issocket, eMainloop *ml): readbuffer(32768), writebuffer(32768) { setSocket(socket, issocket, ml); mystate=Connection; @@ -285,8 +284,6 @@ eSocket::eSocket(int socket, int issocket, eMainloop *ml): readbuffer(32768), wr eSocket::~eSocket() { - if (rsn) - delete rsn; if(socketdesc>=0) { ::close(socketdesc);