David Dykstra [Fri, 4 Aug 2000 21:26:17 +0000 (21:26 +0000)]
Undo last setting of blocking_io. I hadn't reviewed the code well enough;
turns out that when client is talking to a server daemon it never executes
this leg of code. Oops. The people who said it made a difference when
they changed the code must have been wrong.
David Dykstra [Fri, 4 Aug 2000 21:11:46 +0000 (21:11 +0000)]
Enable --compare-dest to work in combination with --always-checksum.
Problem and suggested patch from Dean Scothern dino@cricinfo.com (although
I re-wrote the patch).
Andrew Tridgell [Sun, 9 Apr 2000 02:16:42 +0000 (02:16 +0000)]
a very simple fix - if I'd only thought if it last week :)
rsh relies on stdin being blocking
ssh relies on stdout being non-blocking
what we've done before is to set both stdin and stdout to either
blocking or non-blocking. Now I set stdin to blocking and stdout to
non-blocking. This seems to fix all cases I've tested.
David Dykstra [Tue, 22 Feb 2000 19:47:44 +0000 (19:47 +0000)]
Somebody was confused into thinking that "Here are some examples" in the
section on exclude/include was supposed to be about "+/-" so I changed
the statement to "Here are some exclude/include examples".
David Dykstra [Tue, 22 Feb 2000 15:55:40 +0000 (15:55 +0000)]
Change socketpair test to verify that it works rather than just exists,
because I have an obscure system (Amdahl's UTS 2.1.2) in which socketpair()
exists but is broken.
David Dykstra [Tue, 15 Feb 2000 22:44:18 +0000 (22:44 +0000)]
Move the checking for -lsocket -lnsl ahead of the checking for most of
the functions, especially "socketpair" so that socket-related functions will
be properly discovered on SVR4-based systems such as Solaris. Problem
discovered by Kenji Miyake <kenji@miyake.org>
Andrew Tridgell [Sun, 30 Jan 2000 00:50:19 +0000 (00:50 +0000)]
another hang-at-end fix. It looks like we are more sensiitive to
these with socketpairs. The receiver now sleeps until it gets a signal
to tell it to exit
also fixed test.sh to use the current version remotely
Andrew Tridgell [Sat, 29 Jan 2000 04:50:01 +0000 (04:50 +0000)]
damn!
the last pre-release had a bug that didn't setup the multiplexing
correctly. This means that pre-release will get "unexpected tag -7"
whenm talking to the fixed code.
Andrew Tridgell [Fri, 28 Jan 2000 15:29:59 +0000 (15:29 +0000)]
- switched on multiplexing for all connections, not just daemon
connections (this fixes the stderr/stdout problem). Upped
protocol version for backward compat
- use multiplexing on error fd
- upped minimal protocol version
- got rid of some ugly code in the write buffering
Andrew Tridgell [Tue, 25 Jan 2000 14:17:21 +0000 (14:17 +0000)]
the convoluted nest of #ifdefs that is fnmatch.c caught us again. On
my system the LIBC tests meant it never compiled and we used the
broken system one.
Andrew Tridgell [Mon, 24 Jan 2000 12:02:44 +0000 (12:02 +0000)]
make the replacement inet_aton() function independent of
inet_addr(). Some systems were detecting a missing inet_aton(), but
actually had it and inet_addr() called it, causing infinite recursion
Andrew Tridgell [Sun, 23 Jan 2000 13:16:30 +0000 (13:16 +0000)]
removed Daves include-only optimisation. One of the bug reports turned
out to be caused by it and it seems rather a lot of extra effort for
what must really be a minor optimisation in most cases
Andrew Tridgell [Sun, 23 Jan 2000 07:36:56 +0000 (07:36 +0000)]
added some really ugly code to allow errors to propogate to
clients when writing to a rsync server
it works like this:
- we have an extra pipe from the receiver to the generator
- the server always runs with multiplexing on
- errors from the generator go down the multiplexed connection
- errors from the receiver go over the pipe, and from there to
the multiplexed conn
David Dykstra [Mon, 10 Jan 2000 22:39:45 +0000 (22:39 +0000)]
Make all the rsync objects dependent on all the header files except the
zlib header fiels in Makefile.in. I've been burned several times because
objects did not get rebuilt when header files changed.
David Dykstra [Mon, 10 Jan 2000 20:36:20 +0000 (20:36 +0000)]
Needed to comment out the inclusion of headers in fnmatch.c because it
couldn't find some of them (especially <fnmatch.h>, because it wasn't
looking in the current directory). The header files are included better
from ../rsync.h.
David Dykstra [Fri, 7 Jan 2000 17:58:44 +0000 (17:58 +0000)]
Upgrade lib/fnmatch.[ch] to the latest from glibc-2.1.2 because the
FNM_PATHNAME flag (to stop at slashes in path names) was not working.
Ironically, the bug in glibc's fnmatch was reported on the rsync mailing
list in late October, and rsync's configure.in was changed to detect the
bad glibc and use the internal fnmatch, but the internal fnmatch was based
on the same buggy glibc!
David Dykstra [Thu, 6 Jan 2000 16:15:36 +0000 (16:15 +0000)]
If a destination file cannot be opened, pretend it doesn't exist rather
than skipping it and thus not updating it. For example, the ownership or
mode on a file may prevent opening it, but the directory may still be
writable so the file could be completely replaced.
Andrew Tridgell [Thu, 6 Jan 2000 00:26:00 +0000 (00:26 +0000)]
when we do a lchown() on a file we have to flush the cached perms on
the file if the file has the setuid or setgid bits set as the chown
has a side effect of removing the setuid and setgid bits.
we re-do the stat in this case
David Dykstra [Wed, 29 Dec 1999 20:50:48 +0000 (20:50 +0000)]
When writing to a daemon with read only = false and uid = root and -g,
was not preserving group permisions. Bug was introduced March 1 in
version 1.100 of rsync.c with an error in re-ordering of the boolean
expressions. In order to completely preserve the earlier semantics,
change_gid should depend on "(am_root || !am_daemon)", but I don't see why
group ownership should behave differently in a non-root daemon.
David Dykstra [Wed, 29 Dec 1999 20:45:23 +0000 (20:45 +0000)]
When not using -p and file being copied to already existed, was mistakenly
using all the mode bits of the existing file rather than just the permissions,
including the file type.