On Fri, Jun 30, 2000 at 07:13:13AM +1000, Kurt Andersen wrote:
> If it helps, based on discussions on the rsync mailing list,
> here is a hack that I put into the 2.4.3 source that gets 
> around the problem.  The method of detecting ssh is what I
> characterize as a hack...
> 
> *** rsync-2.4.3/version.h.orig        Sat Apr  8 19:53:55 2000
> --- rsync-2.4.3/version.h     Thu Jun 29 14:03:34 2000
> ***************
> *** 1 ****
> ! #define VERSION "2.4.3"
> --- 1 ----
> ! #define VERSION "2.4.3-1"
> *** rsync-2.4.3/util.c.orig   Sat Apr  8 19:53:31 2000
> --- rsync-2.4.3/util.c        Thu Jun 29 14:03:27 2000
> ***************
> *** 116,121 ****
> --- 116,124 ----
>         if (from_child_pipe[1] != STDOUT_FILENO) close(from_child_pipe[1]);
>         umask(orig_umask);
>         set_blocking(STDIN_FILENO);
> +       if (! strstr(command[0],"ssh")) { /* doesn't include ssh */
> +       set_blocking(STDOUT_FILENO);
> +       }
>         execvp(command[0], command);
>         rprintf(FERROR,"Failed to exec %s : %s\n",
>             command[0],strerror(errno));


Please test out Andrew's latest rsync in cvs.  He added a --blocking-io
option which he turns on if the command equals RSYNC_RSH (which is the
default if you don't set -e) and otherwise it is assumed to be non-blocking;
this is the opposite default to what you used.  I haven't had a chance to
test it out much yet myself.

See http://rsync.samba.org/cvs.html for instructions on using rsync's cvs.

- Dave Dykstra

Reply via email to