summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2006-05-13 03:54:38 +0000
committerMike Frysinger <vapier@gentoo.org>2006-05-13 03:54:38 +0000
commit7ed4caaa2c291e5579afe21fe78224ddc8a266b5 (patch)
tree5f62170d194f82c4453f268212388f0e304cab06 /net-misc/rsync/files
parentECVS_SERVER update (diff)
downloadgentoo-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-r13
-rw-r--r--net-misc/rsync/files/rsync-2.6.8-fix-deferred-msgs.patch52
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);
+ }