diff options
author | Wayne Davison <wayned@samba.org> | 2007-10-13 05:23:34 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2007-10-13 05:23:34 +0000 |
commit | e5f35681e6f88d1b716b19ff7c9c77991207df08 (patch) | |
tree | 602230e71a201cec508032b2b700cddec407c763 /io.c | |
parent | 32b9011ae97cb4be9dbd6d1991a9b633b64ce6a0 (diff) | |
download | android_external_rsync-e5f35681e6f88d1b716b19ff7c9c77991207df08.tar.gz android_external_rsync-e5f35681e6f88d1b716b19ff7c9c77991207df08.tar.bz2 android_external_rsync-e5f35681e6f88d1b716b19ff7c9c77991207df08.zip |
Forward MSG_IO_ERROR to the generator so that it can disable deletions.
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -388,6 +388,12 @@ static void read_msg_fd(void) goto invalid_msg; flist_eof = 1; break; + case MSG_IO_ERROR: + if (len != 4) + goto invalid_msg; + readfd(fd, buf, len); + io_error |= IVAL(buf, 0); + break; case MSG_DELETED: if (len >= (int)sizeof buf || !am_generator) goto invalid_msg; @@ -1041,6 +1047,7 @@ static int readfd_unbuffered(int fd, char *buf, size_t len) if (msg_bytes != 4) goto invalid_msg; read_loop(fd, line, msg_bytes); + send_msg_int(MSG_IO_ERROR, IVAL(line, 0)); io_error |= IVAL(line, 0); break; case MSG_DELETED: |