aboutsummaryrefslogtreecommitdiff
path: root/lib/network/socket.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-29 19:46:57 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-29 19:46:57 +0000
commit10e7e45ae92d4fe06f70126ed256b87896dbc432 (patch)
treef4b03eb252e5517ccb67be3cd8463c10e14e147c /lib/network/socket.cpp
parent6bb94cd5b0d8fd3608afe84e8d76aef554a4b401 (diff)
downloadenigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.tar.gz
enigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.zip
better solution to add possibility to delete eSocketNotifiers,
eConsoleAppContainers in callback funktions without crash
Diffstat (limited to 'lib/network/socket.cpp')
-rw-r--r--lib/network/socket.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/lib/network/socket.cpp b/lib/network/socket.cpp
index b2ab7437..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;
@@ -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;
@@ -278,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;
@@ -286,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);