From f31d2ed1fd3a39a92bccc12eb66728594290ef3b Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Tue, 14 Sep 2010 09:55:22 -0700 Subject: [PATCH] Return false on socket read error FrameworkListener was returning the errno from a function marked as returning bool which caused an implicit conversion to true since we were in an error block where errno was set to something non-zero. This caused the clients that had errors to stick around forever and not get removed from the set of file descriptors that SocketListener was listening to. Change-Id: Ia27a4cac47459f3a3c2bb6a7f66803a3165c894a --- libsysutils/src/FrameworkListener.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsysutils/src/FrameworkListener.cpp b/libsysutils/src/FrameworkListener.cpp index 80f678d0a..640b6df25 100644 --- a/libsysutils/src/FrameworkListener.cpp +++ b/libsysutils/src/FrameworkListener.cpp @@ -35,7 +35,7 @@ bool FrameworkListener::onDataAvailable(SocketClient *c) { if ((len = read(c->getSocket(), buffer, sizeof(buffer) -1)) < 0) { SLOGE("read() failed (%s)", strerror(errno)); - return errno; + return false; } else if (!len) return false;