Andrew Tridgell [Mon, 5 Jan 1998 23:30:44 +0000 (23:30 +0000)]
cosmetic changes only
- minor correction to --update docs
- don't print "building file list" stuff when building a local file
list for use in the --delete code.
- remove some spaces at the end of lines in Makefile.in
Andrew Tridgell [Sun, 28 Dec 1997 22:13:40 +0000 (22:13 +0000)]
- fixed spelling errors in man page
- fixed bug in hard link handling that could lead to spurious hard
links.
- fixed bug in the string handling in flist.c
Andrew Tridgell [Thu, 18 Dec 1997 11:18:32 +0000 (11:18 +0000)]
following a report of problems with Linux/alpha I've changed zlib.c to
use uint32 instead of "long" in several places. Apparently this fixes
things on the alpha. The strange thing is that my own tests on a
OSF/alpha box and a 64 bit IRIX box showed no problems. I wonder what
was actually going wrong? I'll email the zlib maintainers and let them
know.
Andrew Tridgell [Tue, 16 Dec 1997 20:29:35 +0000 (20:29 +0000)]
fixed a bug in the handling of the new --relative option. The file was
being opened twice but closed once. The process eventually died with
an out of file descriptors error.
Andrew Tridgell [Tue, 16 Dec 1997 18:18:02 +0000 (18:18 +0000)]
Checker showed that zlib was using a element of its internal state
structure without initialising it. Although it looks harmless I've
added a bzero() to make absolutely sure that the code behaves
consistently across platforms.
Andrew Tridgell [Tue, 16 Dec 1997 17:59:49 +0000 (17:59 +0000)]
fixed a nasty bug in the handling of the --delete option when there
are duplicate file names in the list of files to be transferred
(eg. the user specifies the same file twice).
Andrew Tridgell [Tue, 16 Dec 1997 09:25:17 +0000 (09:25 +0000)]
#if 0 the write exception code for the moment. I need to work out why
it gets a successful write select on a fd followed by a EAGAIN
write yet the fd is still OK.
Andrew Tridgell [Tue, 16 Dec 1997 08:48:36 +0000 (08:48 +0000)]
- fixed the "write exception" error. I was resetting got_select at the
wrong point
- fixed a seg fault error in flist.c
- only print hlink debug messages when using -v
Andrew Tridgell [Mon, 15 Dec 1997 21:35:37 +0000 (21:35 +0000)]
some people are now using rsync as a public server, using various
patches or wrappers. One problem with this is that rsync was not
written with this in mind and wasn't very careful about possible stack
overflows etc which could lead to security breaches. This wasn't a
problem when run in the traditional way as any user that can run rsync
can login anyway and cause much more damage that way.
This patch attempts to close possible stack overflow problems. I've
checked for all strcpy(), strcat(), sprintf() and memcpy()
overflows. I would appreciate it if someone else with a devious mind
could also go through the rsync source code and see if there are any
other stack overflows possible. Let me know if you do.
Andrew Tridgell [Mon, 15 Dec 1997 21:04:04 +0000 (21:04 +0000)]
several changes:
- by popular demand I have changed the behaviour of the --delete
option. It should now work as "expected" for even those people silly
enough not to read the man page. rsync will now only look for
candidate files/directories to delete in directories that are
explicitly transferred from the sender
- updated the README a bit
- try to fail a bit more gracefully when rsync runs out of disk
space. I don't think this issues is fully resolved yet
rsync-bugs [Mon, 15 Dec 1997 18:36:21 +0000 (18:36 +0000)]
only include sys/mod.h if S_ISLNK is not already defined. This allows
things to work on aix without causing broken sgi headers files to spew
lots of complaints
Andrew Tridgell [Mon, 15 Dec 1997 14:43:27 +0000 (14:43 +0000)]
added a --relative (== -R) option. This is what Anthony Thyssen
suggested on the list recently. See the man page entry for details but
basically it changes the behaviour so that paths are not stripped,
thus allowing you to specify a single rsync command to sync lots of
directories/files while preserving the full path name of each file.
also fixed a bug in the handling of umasks when both the source and
destination machines are local. We need to reset the umask before the
exec to ensure that the child gets a correct umask.
Andrew Tridgell [Mon, 15 Dec 1997 13:38:06 +0000 (13:38 +0000)]
added some more debug info to the "EOF in map_ptr" error message to
try to make it easier to track down what is going wrong.
Jarom, can you let me know what output this gives?
PS: the cvs commit messages for rsync are now sent to the rsync
mailing list. This will allow everyone to see what changes are being
made.
Andrew Tridgell [Mon, 15 Dec 1997 12:37:40 +0000 (12:37 +0000)]
damn, I had implicitly assumed signed characters when writing the
rolling checksum code. The result is that rsync worked much more
slowly when going between two machines where one of the machines uses
signed and the other unsigned chars. The rolling checksum rarely
matched so effectively a copy was done in many cases. The data always
came through correctly so no file corruption occurred but it's pretty
pointless using rsync if it doesn't speed things up!
I've now made the sign of the chars explicit
Andrew Tridgell [Mon, 15 Dec 1997 12:33:15 +0000 (12:33 +0000)]
I think I've (finally) fixed the problem with rsync periodically
freezing when used with ssh. The problem is really the ssh use of
blocking calls. rsync has had a fix for this for a while which relies
on using non-blocking calls itself and then reading any data from the
incoming fd when trying to write, thus ensuring that the incoming fd
doesn't get full.
The problem was the the incoming fd wasn't added to the select
statement, which meant that new data arriving on the fd only got read
when the select timed out, which happens every 10 seconds. Thus things
could slow to a crawl!
The incoming fd is now in the select call, and this seems to fix the
problem.