diff options
author | Wayne Davison <wayned@samba.org> | 2005-02-20 01:04:46 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2005-02-20 01:04:46 +0000 |
commit | 9981c27ef1ebc3844a646392fc1c52416af699ca (patch) | |
tree | 87aa1c989b8b4493093108e2abe1565ceff51a75 /io.c | |
parent | fe96018750bb6bbb16a0001a1056b2557be30f58 (diff) | |
download | android_external_rsync-9981c27ef1ebc3844a646392fc1c52416af699ca.tar.gz android_external_rsync-9981c27ef1ebc3844a646392fc1c52416af699ca.tar.bz2 android_external_rsync-9981c27ef1ebc3844a646392fc1c52416af699ca.zip |
Handle the new MSG_SUCCESS message for both the generator and the
sender.
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -256,6 +256,14 @@ static void read_msg_fd(void) read_loop(fd, buf, len); io_multiplex_write(MSG_DELETED, buf, len); break; + case MSG_SUCCESS: + if (len != 4 || !am_generator) { + rprintf(FERROR, "invalid message %d:%d\n", tag, len); + exit_cleanup(RERR_STREAMIO); + } + read_loop(fd, buf, len); + io_multiplex_write(MSG_SUCCESS, buf, len); + break; case MSG_INFO: case MSG_ERROR: case MSG_LOG: @@ -704,6 +712,16 @@ static int readfd_unbuffered(int fd, char *buf, size_t len) log_delete(line, S_IFREG); remaining = 0; break; + case MSG_SUCCESS: + if (remaining != 4) { + rprintf(FERROR, "invalid multi-message %d:%ld\n", + tag, (long)remaining); + exit_cleanup(RERR_STREAMIO); + } + read_loop(fd, line, remaining); + successful_send(IVAL(line, 0)); + remaining = 0; + break; case MSG_INFO: case MSG_ERROR: if (remaining >= sizeof line) { |