diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-05-13 03:54:38 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-05-13 03:54:38 +0000 |
commit | 7ed4caaa2c291e5579afe21fe78224ddc8a266b5 (patch) | |
tree | 5f62170d194f82c4453f268212388f0e304cab06 /net-misc/rsync/files | |
parent | ECVS_SERVER update (diff) | |
download | gentoo-2-7ed4caaa2c291e5579afe21fe78224ddc8a266b5.tar.gz gentoo-2-7ed4caaa2c291e5579afe21fe78224ddc8a266b5.tar.bz2 gentoo-2-7ed4caaa2c291e5579afe21fe78224ddc8a266b5.zip |
Fix from upstream for broken transfers #133054 by Wernfried Haas.
(Portage version: 2.1_pre10-r5)
Diffstat (limited to 'net-misc/rsync/files')
-rw-r--r-- | net-misc/rsync/files/digest-rsync-2.6.8-r1 | 3 | ||||
-rw-r--r-- | net-misc/rsync/files/rsync-2.6.8-fix-deferred-msgs.patch | 52 |
2 files changed, 55 insertions, 0 deletions
diff --git a/net-misc/rsync/files/digest-rsync-2.6.8-r1 b/net-misc/rsync/files/digest-rsync-2.6.8-r1 new file mode 100644 index 000000000000..4789a4ea15b8 --- /dev/null +++ b/net-misc/rsync/files/digest-rsync-2.6.8-r1 @@ -0,0 +1,3 @@ +MD5 082a9dba1f741e6591e5cd748a1233de rsync-2.6.8.tar.gz 772314 +RMD160 f01bd6c6d28f7cf888be640c4d3b2406bba28385 rsync-2.6.8.tar.gz 772314 +SHA256 784782de0efee0b4624bdd1d75d524ef95d16354cb13cbb5449d990b61e607a6 rsync-2.6.8.tar.gz 772314 diff --git a/net-misc/rsync/files/rsync-2.6.8-fix-deferred-msgs.patch b/net-misc/rsync/files/rsync-2.6.8-fix-deferred-msgs.patch new file mode 100644 index 000000000000..6d2a464d6950 --- /dev/null +++ b/net-misc/rsync/files/rsync-2.6.8-fix-deferred-msgs.patch @@ -0,0 +1,52 @@ +Fix from upstream for: +http://bugs.gentoo.org/133054 + +Index: io.c +=================================================================== +RCS file: /cvsroot/rsync/io.c,v +retrieving revision 1.193 +retrieving revision 1.194 +diff -u -p -r1.193 -r1.194 +--- io.c 25 Apr 2006 23:51:15 -0000 1.193 ++++ io.c 3 May 2006 05:19:01 -0000 1.194 +@@ -294,6 +294,7 @@ static void read_msg_fd(void) + exit_cleanup(RERR_STREAMIO); + } + close_multiplexing_out(); ++ defer_forwarding_messages = 0; + /* FALL THROUGH */ + case MSG_INFO: + case MSG_ERROR: +@@ -303,7 +304,8 @@ static void read_msg_fd(void) + if (n >= sizeof buf) + n = sizeof buf - 1; + read_loop(fd, buf, n); +- if (am_generator && am_server && defer_forwarding_messages) ++ if (am_generator && am_server ++ && defer_forwarding_messages && tag != MSG_LOG) + msg_list_add(&msg2sndr, tag, buf, n); + else + rwrite((enum logcode)tag, buf, n); +@@ -1134,11 +1136,20 @@ static void msg2sndr_flush(void) + + while (msg2sndr.head && io_multiplexing_out) { + struct msg_list_item *m = msg2sndr.head; ++ int tag = (IVAL(m->buf, 0) >> 24) - MPLEX_BASE; + if (!(msg2sndr.head = m->next)) + msg2sndr.tail = NULL; +- stats.total_written += m->len; + defer_forwarding_messages = 1; +- writefd_unbuffered(sock_f_out, m->buf, m->len); ++ switch (tag) { ++ case MSG_INFO: ++ case MSG_ERROR: ++ rwrite((enum logcode)tag, m->buf + 4, m->len - 4); ++ break; ++ default: ++ stats.total_written += m->len; ++ writefd_unbuffered(sock_f_out, m->buf, m->len); ++ break; ++ } + defer_forwarding_messages = 0; + free(m); + } |