r2916 - trunk/libmsip/source

mikma at minisip.org mikma at minisip.org
Fri Nov 17 18:00:32 CET 2006


Author: mikma
Date: 2006-11-17 18:00:31 +0100 (Fri, 17 Nov 2006)
New Revision: 2916

Modified:
   trunk/libmsip/source/SipLayerTransport.cxx
Log:
Timeout value needs to be set before each call to select, since at
least on Linux select modifies timeout to reflect the amount of time not slept.
It's recommened in select(3) to consider timeout to be undefined after
select() returns.


Modified: trunk/libmsip/source/SipLayerTransport.cxx
===================================================================
--- trunk/libmsip/source/SipLayerTransport.cxx	2006-11-17 16:33:57 UTC (rev 2915)
+++ trunk/libmsip/source/SipLayerTransport.cxx	2006-11-17 17:00:31 UTC (rev 2916)
@@ -1029,9 +1029,6 @@
 	MRef<SipMessage*> pack;
 	int32_t nread;
 	fd_set set;
-	struct timeval tv;
-	tv.tv_sec = 600;
-	tv.tv_usec = 0;
 
 	
 	while( true ){
@@ -1043,6 +1040,11 @@
 		#endif
 
 		do{
+			struct timeval tv;
+			// Timeout needs to be set before each call to select since
+			// it should be consider undefined after select() returns.
+			tv.tv_sec = 600;
+			tv.tv_usec = 0;
 			avail = select(socket->getFd()+1,&set,NULL,NULL,&tv );
 		} while( avail <= 0 );
 



More information about the Minisip-devel mailing list