From 373724882c7cbd617f99ee2490e84c32f6ca88b8 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 21 Apr 2009 21:43:05 +0000 Subject: [PATCH] add select to read socket in abyss so we can timeout git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13107 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/xmlrpc-c/lib/abyss/src/socket_unix.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libs/xmlrpc-c/lib/abyss/src/socket_unix.c b/libs/xmlrpc-c/lib/abyss/src/socket_unix.c index 623185269e..b2ebdf12c0 100644 --- a/libs/xmlrpc-c/lib/abyss/src/socket_unix.c +++ b/libs/xmlrpc-c/lib/abyss/src/socket_unix.c @@ -227,7 +227,19 @@ channelRead(TChannel * const channelP, struct socketUnix * const socketUnixP = channelP->implP; int rc; - rc = recv(socketUnixP->fd, buffer, bufferSize, 0); + fd_set rfds, efds; + struct timeval tv = { 10, 0 }; + + FD_ZERO(&rfds); + FD_ZERO(&efds); + FD_SET(socketUnixP->fd, &rfds); + FD_SET(socketUnixP->fd, &efds); + + if ((rc = select(socketUnixP->fd + 1, &rfds, NULL, &efds, &tv)) > 0) { + rc = recv(socketUnixP->fd, buffer, bufferSize, 0); + } else { + rc = -1; + } if (rc < 0) { *failedP = TRUE;