summaryrefslogtreecommitdiffstats
path: root/libsysutils
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2010-09-14 09:55:22 -0700
committerKenny Root <kroot@google.com>2010-09-14 09:55:22 -0700
commitf31d2ed1fd3a39a92bccc12eb66728594290ef3b (patch)
tree7cff1f0796d7ff93ccdf3ae8cd3ac4022e932072 /libsysutils
parent09dd3e57b920c8f65cb486313a4c0f35b8cb9f46 (diff)
downloadsystem_core-f31d2ed1fd3a39a92bccc12eb66728594290ef3b.zip
system_core-f31d2ed1fd3a39a92bccc12eb66728594290ef3b.tar.gz
system_core-f31d2ed1fd3a39a92bccc12eb66728594290ef3b.tar.bz2
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
Diffstat (limited to 'libsysutils')
-rw-r--r--libsysutils/src/FrameworkListener.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libsysutils/src/FrameworkListener.cpp b/libsysutils/src/FrameworkListener.cpp
index 80f678d..640b6df 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;