summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-07-19 10:51:26 +0000
committerAndrew Tridgell <tridge@samba.org>1998-07-19 10:51:26 +0000
commit8cd9fd4e8c293047162784ae08c12be3636b9353 (patch)
tree9aaa707794d3660732bd221c8148ccddf56f6aa4 /io.c
parent41979ff87c1bc59e30c91c67edab535806d77812 (diff)
downloadrsync-8cd9fd4e8c293047162784ae08c12be3636b9353.tar.gz
always use a timeout to select, even if --timeout is not
specified. This makes things easier to debug.
Diffstat (limited to 'io.c')
-rw-r--r--io.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/io.c b/io.c
index fc62e452..3ea09e12 100644
--- a/io.c
+++ b/io.c
@@ -24,6 +24,9 @@
*/
#include "rsync.h"
+/* if no timeout is specified then use a 60 second select timeout */
+#define SELECT_TIMEOUT 60
+
static int io_multiplexing_out;
static int io_multiplexing_in;
static int multiplex_in_fd;
@@ -83,11 +86,10 @@ static int read_timeout(int fd, char *buf, int len)
FD_ZERO(&fds);
FD_SET(fd, &fds);
- tv.tv_sec = io_timeout;
+ tv.tv_sec = io_timeout?io_timeout:SELECT_TIMEOUT;
tv.tv_usec = 0;
- if (select(fd+1, &fds, NULL, NULL,
- io_timeout?&tv:NULL) != 1) {
+ if (select(fd+1, &fds, NULL, NULL, &tv) != 1) {
check_timeout();
continue;
}
@@ -338,13 +340,13 @@ static void writefd_unbuffered(int fd,char *buf,int len)
fd_count = buffer_f_in+1;
}
- tv.tv_sec = io_timeout;
+ tv.tv_sec = io_timeout?io_timeout:SELECT_TIMEOUT;
tv.tv_usec = 0;
count = select(fd_count,
reading?&r_fds:NULL,
&w_fds,NULL,
- io_timeout?&tv:NULL);
+ &tv);
if (count <= 0) {
check_timeout();