diff options
Diffstat (limited to 'libsysutils')
-rw-r--r-- | libsysutils/src/SocketListener.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libsysutils/src/SocketListener.cpp b/libsysutils/src/SocketListener.cpp index 69ed79edf..fcad624b1 100644 --- a/libsysutils/src/SocketListener.cpp +++ b/libsysutils/src/SocketListener.cpp @@ -213,8 +213,9 @@ void SocketListener::runListener() { it = pendingList->begin(); SocketClient* c = *it; pendingList->erase(it); - /* Process it, if false is returned, remove and destroy it */ - if (!onDataAvailable(c)) { + /* Process it, if false is returned and our sockets are + * connection-based, remove and destroy it */ + if (!onDataAvailable(c) && mListen) { /* Remove the client from our array */ pthread_mutex_lock(&mClientsLock); for (it = mClients->begin(); it != mClients->end(); ++it) { |