mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-01-25 15:28:29 -05:00
added SIGPIPE catch
added select timeout
This commit is contained in:
@@ -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
|
||||
|
||||
5
io.c
5
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;
|
||||
}
|
||||
|
||||
1
main.c
1
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);
|
||||
|
||||
2
rsync.h
2
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>
|
||||
|
||||
Reference in New Issue
Block a user