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