[Freeswitch-svn] [commit] r13107 - freeswitch/trunk/libs/xmlrpc-c/lib/abyss/src

FreeSWITCH SVN anthm at freeswitch.org
Tue Apr 21 14:43:05 PDT 2009


Author: anthm
Date: Tue Apr 21 16:43:05 2009
New Revision: 13107

Log:
add select to read socket in abyss so we can timeout

Modified:
   freeswitch/trunk/libs/xmlrpc-c/lib/abyss/src/socket_unix.c

Modified: freeswitch/trunk/libs/xmlrpc-c/lib/abyss/src/socket_unix.c
==============================================================================
--- freeswitch/trunk/libs/xmlrpc-c/lib/abyss/src/socket_unix.c	(original)
+++ freeswitch/trunk/libs/xmlrpc-c/lib/abyss/src/socket_unix.c	Tue Apr 21 16:43:05 2009
@@ -227,7 +227,19 @@
     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;



More information about the Freeswitch-svn mailing list