added SIGPIPE catch
authorAndrew Tridgell <tridge@samba.org>
Wed, 26 Jun 1996 03:21:27 +0000 (03:21 +0000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 26 Jun 1996 03:21:27 +0000 (03:21 +0000)
added select timeout

.cvsignore
io.c
main.c
rsync.h
version.h

index d24a597..1390d90 100644 (file)
@@ -42,6 +42,8 @@ rsync-0.9.tar.gz
 rsync-1.0
 rsync-1.1
 rsync-1.1.tar.gz
+rsync-1.2
+rsync-1.2.tar.gz
 rsync-ERSION
 rsync.aux
 rsync.dvi
diff --git a/io.c b/io.c
index 5ca0e6c..22e5b3d 100644 (file)
--- a/io.c
+++ b/io.c
@@ -163,6 +163,7 @@ static int writefd(int fd,char *buf,int len)
 {
   int total = 0;
   fd_set fds;
+  struct timeval tv;
 
   if (buffer_f_in == -1) 
     return write(fd,buf,len);
@@ -180,7 +181,9 @@ static int writefd(int fd,char *buf,int len)
 
       FD_ZERO(&fds);
       FD_SET(fd,&fds);
-      select(16,NULL,&fds,NULL,NULL);
+      tv.tv_sec = BLOCKING_TIMEOUT;
+      tv.tv_usec = 0;
+      select(16,NULL,&fds,NULL,&tv);
     } else {
       total += ret;
     }
diff --git a/main.c b/main.c
index a2733e6..721fdbb 100644 (file)
--- a/main.c
+++ b/main.c
@@ -653,6 +653,7 @@ int main(int argc,char *argv[])
     
     signal(SIGCHLD,SIG_IGN);
     signal(SIGINT,SIGNAL_CAST sig_int);
+    signal(SIGPIPE,SIGNAL_CAST sig_int);
 
     if (!sender && argc != 1) {
       usage(stderr);
diff --git a/rsync.h b/rsync.h
index fd24df5..7592c89 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -29,6 +29,8 @@
 /* block size to write files in */
 #define WRITE_BLOCK_SIZE (32*1024)
 
+#define BLOCKING_TIMEOUT 10
+
 #include "config.h"
 
 #include <sys/types.h>
index 1fc901b..eb5ec46 100644 (file)
--- a/version.h
+++ b/version.h
@@ -1 +1 @@
-#define VERSION "1.1"
+#define VERSION "1.3"