]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add select to read socket in abyss so we can timeout
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 21 Apr 2009 21:43:05 +0000 (21:43 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 21 Apr 2009 21:43:05 +0000 (21:43 +0000)
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

index 623185269edc04a24f0086b2c00cdecdf88b7bd7..b2ebdf12c0532842f9898a9ba81acb5483b3748b 100644 (file)
@@ -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;