diff options
| author | Wayne Davison <wayned@samba.org> | 2005-02-26 22:14:40 +0000 |
|---|---|---|
| committer | Wayne Davison <wayned@samba.org> | 2005-02-26 22:14:40 +0000 |
| commit | cb2e1f18c21bfe197e5f08e1553057ea440d320c (patch) | |
| tree | d892b32faa6de9adf9ca9ae358843825b8b4d2ad /io.c | |
| parent | 0ecd03e3965b06c0cfb353032b9081c82696ad0f (diff) | |
| download | android_external_rsync-cb2e1f18c21bfe197e5f08e1553057ea440d320c.tar.gz android_external_rsync-cb2e1f18c21bfe197e5f08e1553057ea440d320c.tar.bz2 android_external_rsync-cb2e1f18c21bfe197e5f08e1553057ea440d320c.zip | |
One more comment fix.
Diffstat (limited to 'io.c')
| -rw-r--r-- | io.c | 25 |
1 files changed, 12 insertions, 13 deletions
@@ -76,10 +76,7 @@ int batch_gen_fd = -1; const char *io_write_phase = phase_unknown; const char *io_read_phase = phase_unknown; -/* Ignore an EOF error if non-zero. We exit if the value is > 0 (used while - * reading a module listing if the remote version is 24 or less) or go into a - * sleep loop if the value is < 0 (used by the receiver when it is reading a - * potential end-of-transfer keep-alive message that may never come). */ +/* Ignore an EOF error if non-zero. See whine_about_eof(). */ int kluge_around_eof = 0; int msg_fd_in = -1; @@ -364,16 +361,18 @@ void io_set_filesfrom_fds(int f_in, int f_out) io_filesfrom_buflen = 0; } -/** - * It's almost always an error to get an EOF when we're trying to read - * from the network, because the protocol is self-terminating. +/* It's almost always an error to get an EOF when we're trying to read from the + * network, because the protocol is (for the most part) self-terminating. * - * However, there is one unfortunate cases where it is not, which is - * rsync <2.4.6 sending a list of modules on a server, since the list - * is terminated by closing the socket. So, for the section of the - * program where that is a problem (start_socket_client), - * kluge_around_eof is True and we just exit. - */ + * There is one case for the receiver when it is at the end of the transfer + * (hanging around reading any keep-alive packets that might come its way): if + * the sender dies before the generator's kill-signal comes through, we can end + * up here needing to loop until the kill-signal arrives. In this situation, + * kluge_around_eof will be < 0. + * + * There is another case for older protocol versions (< 24) where the module + * listing was not terminated, so we must ignore an EOF error in that case and + * exit. In this situation, kluge_around_eof will be > 0. */ static void whine_about_eof(int fd) { if (kluge_around_eof && fd == sock_f_in) { |
