Turn on blocking_io when starting client of rsync server daemon.
[rsync.git] / clientserver.c
index df847ffcafdd0739980925a08b6dd78c5fbc2edb..459e222783d50bdaec49677a3c2fb3b271a6367f 100644 (file)
@@ -37,6 +37,7 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
        extern int remote_version;
        extern int am_sender;
        extern struct in_addr socket_address;
+       extern int blocking_io;
 
        if (*path == '/') {
                rprintf(FERROR,"ERROR: The remote path must start with a module name\n");
@@ -53,6 +54,8 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
        if (!user) user = getenv("USER");
        if (!user) user = getenv("LOGNAME");
 
+       blocking_io = 1;
+
        fd = open_socket_out(host, rsync_port, &socket_address);
        if (fd == -1) {
                exit_cleanup(RERR_SOCKETIO);
@@ -363,7 +366,7 @@ static int start_daemon(int fd)
 
        set_socket_options(fd,"SO_KEEPALIVE");
        set_socket_options(fd,lp_socket_options());
-       
+       set_nonblocking(fd);
 
        io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);