Got rid of some code from writefd_unbuffered() that was only needed
[rsync/rsync.git] / io.c
diff --git a/io.c b/io.c
index bdfebaf..2dd6d41 100644 (file)
--- a/io.c
+++ b/io.c
@@ -574,7 +574,7 @@ static int read_timeout(int fd, char *buf, size_t len)
                len -= n;
                ret += n;
 
-               if (io_timeout && fd == sock_f_in)
+               if (fd == sock_f_in && (io_timeout || am_generator))
                        last_io = time(NULL);
        }
 
@@ -665,6 +665,13 @@ void io_end_buffering(void)
 }
 
 
+void maybe_flush_socket(void)
+{
+       if (iobuf_out && iobuf_out_cnt && time(NULL) - last_io >= 5)
+               io_flush(NORMAL_FLUSH);
+}
+
+
 void maybe_send_keepalive(void)
 {
        if (time(NULL) - last_io >= allowed_lull) {
@@ -1028,11 +1035,6 @@ static void writefd_unbuffered(int fd,char *buf,size_t len)
                        using_r_fds = 1;
                } else
                        using_r_fds = 0;
-               if (fd != sock_f_out && iobuf_out_cnt && no_flush == 1) {
-                       FD_SET(sock_f_out, &w_fds);
-                       if (sock_f_out > maxfd)
-                               maxfd = sock_f_out;
-               }
 
                tv.tv_sec = select_timeout;
                tv.tv_usec = 0;
@@ -1089,7 +1091,7 @@ static void writefd_unbuffered(int fd,char *buf,size_t len)
                total += ret;
 
                if (fd == sock_f_out) {
-                       if (io_timeout)
+                       if (io_timeout || am_generator)
                                last_io = time(NULL);
                        sleep_for_bwlimit(ret);
                }