A recent change to openrsync added the --timeout opt.  There's code to
handle the (default) case of --timeout=0, which sets the poll_timeout
to -1 (INFTIM).  Unfortunately that code doesn't run in the server
process, meaning all of the relevant calls to poll(2) return
immediately and the process fails.

The following patch addresses the issue by moving the code that
handles --timeout=0 up to run before the rsync_server call.

Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/rsync/main.c,v
retrieving revision 1.50
diff -r1.50 main.c
411a412,417
>       /* by default and for --timeout=0 disable poll_timeout */
>       if (poll_timeout == 0)
>               poll_timeout = -1;
>       else
>               poll_timeout *= 1000;
> 
420,425d425
< 
<       /* by default and for --timeout=0 disable poll_timeout */
<       if (poll_timeout == 0)
<               poll_timeout = -1;
<       else
<               poll_timeout *= 1000;

Reply via email to