Use buffered I/O to read the exclude list.
[rsync/rsync.git] / cleanup.c
index 2a85083..ea97339 100644 (file)
--- a/cleanup.c
+++ b/cleanup.c
@@ -26,7 +26,7 @@
  * shutdown() of socket connections.  This eliminates the abortive
  * TCP RST sent by a Winsock-based system when the close() occurs.
  **/
-void close_all()
+void close_all(void)
 {
 #ifdef SHUTDOWN_ALL_SOCKETS
        int max_fd;
@@ -131,8 +131,11 @@ void _exit_cleanup(int code, const char *file, int line)
                }
        }
 
-       if (code == 0 && (io_error || log_got_error)) {
-               code = RERR_PARTIAL;
+       if (code == 0) {
+               if ((io_error & ~IOERR_VANISHED) || log_got_error)
+                       code = RERR_PARTIAL;
+               else if (io_error)
+                       code = RERR_VANISHED;
        }
 
        if (code) log_exit(code, file, line);