From 835d0365d972e9670d2a06fbf8b214d2493ee7b3 Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Fri, 7 Oct 2016 21:54:20 +0200 Subject: [PATCH] fixed bad disconnect handling in onSocketReadable --- Net/samples/EchoServer/src/EchoServer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Net/samples/EchoServer/src/EchoServer.cpp b/Net/samples/EchoServer/src/EchoServer.cpp index 6bf18109c..03fdfd2c7 100644 --- a/Net/samples/EchoServer/src/EchoServer.cpp +++ b/Net/samples/EchoServer/src/EchoServer.cpp @@ -111,13 +111,15 @@ public: void onSocketReadable(const AutoPtr& pNf) { - // some socket implementations (windows) report available - // bytes on client disconnect, so we double-check here - if (_socket.available()) + int len = _socket.receiveBytes(_fifoIn); + if (len > 0) { - int len = _socket.receiveBytes(_fifoIn); _fifoIn.drain(_fifoOut.write(_fifoIn.buffer(), _fifoIn.used())); } + else + { + delete this; + } } void onSocketWritable(const AutoPtr& pNf)