{
int total = 0;
fd_set fds;
+ struct timeval tv;
if (buffer_f_in == -1)
return write(fd,buf,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;
}
signal(SIGCHLD,SIG_IGN);
signal(SIGINT,SIGNAL_CAST sig_int);
+ signal(SIGPIPE,SIGNAL_CAST sig_int);
if (!sender && argc != 1) {
usage(stderr);
/* block size to write files in */
#define WRITE_BLOCK_SIZE (32*1024)
+#define BLOCKING_TIMEOUT 10
+
#include "config.h"
#include <sys/types.h>