Andrew Tridgell [Thu, 29 Oct 1998 05:06:51 +0000 (05:06 +0000)]
kfixed char* casts
Andrew Tridgell [Thu, 29 Oct 1998 05:01:47 +0000 (05:01 +0000)]
changes to get rsync working on a CRAY J90. This machine doesn't have
a 4 byte integer type (short is 8 bytes). I needed to use a new md4
implementation (I used the portable one I wrote for Samba).
Andrew Tridgell [Wed, 28 Oct 1998 10:43:31 +0000 (10:43 +0000)]
syslog support in rsync daemon has been broken since I added the "log
file" option. I wonder why noone reported it? Or did everyone just use
"log file" ?
Andrew Tridgell [Wed, 28 Oct 1998 04:06:43 +0000 (04:06 +0000)]
fixed handling of %.0f in replacement snprintf.c
Andrew Tridgell [Wed, 28 Oct 1998 03:37:53 +0000 (03:37 +0000)]
fixed a typo
Andrew Tridgell [Wed, 28 Oct 1998 03:28:30 +0000 (03:28 +0000)]
and I thought I wasn't going to do any rsync coding for a while ...
Jason Andrade convinced me to add ftpd style logging of transfers,
enabled with a "transfer logging" option in rsyncd.conf
you can customise the format in log.c
David Dykstra [Tue, 27 Oct 1998 17:30:28 +0000 (17:30 +0000)]
Document the fact that --numeric-ids is implied if the source system is
a daemon using chroot.
David Dykstra [Tue, 27 Oct 1998 16:07:51 +0000 (16:07 +0000)]
- Define bindir and mandir as per gnu makefile standards
- Add install-strip target as per gnu makefile standards
Contributed by Fred Sanchez <wsanchez@apple.com>
Andrew Tridgell [Tue, 27 Oct 1998 14:19:35 +0000 (14:19 +0000)]
fixed a typecast
Andrew Tridgell [Tue, 27 Oct 1998 14:09:28 +0000 (14:09 +0000)]
handle OSes (such as Unicos) which use a different value for S_IFLNK
Andrew Tridgell [Mon, 26 Oct 1998 23:23:45 +0000 (23:23 +0000)]
added a vsnprintf() implementation from cvslock. See the notes on the
license at the top of lib/snprintf.c
David Dykstra [Mon, 26 Oct 1998 22:03:18 +0000 (22:03 +0000)]
Fix bug in --include and --include-from which didn't work as advertised;
could only include files before if "+ " was explicitly prefixed on files
from any exclude or include option. Also simplified the code by removing
the "orig" exclude_struct element, and reduced the number of bytes
transferred from client to server by never including "- " prefixes in the
transmitted exclude list because exclusion is the default.
David Dykstra [Mon, 26 Oct 1998 21:51:47 +0000 (21:51 +0000)]
Add "use chroot" and "pid file" rsyncd.conf options. The former allows one
to disable the use of chroot so rsync --daemon can be run as a non-root
user (if a non-privileged --port is used). The latter allows one to
specify a file in which to write the process id of the daemon, which is
useful when rsync --daemon is not run from inetd.
David Dykstra [Mon, 26 Oct 1998 21:45:23 +0000 (21:45 +0000)]
Optimize server for special case of a long list of includes ("+") followed
by a match-all exclude "- *".
David Dykstra [Mon, 26 Oct 1998 21:42:38 +0000 (21:42 +0000)]
Add --compare-dest option which enables specifying an additional destination
for comparisons when syncing. Useful for syncing into a scratch area and
doing a flash-cutover when it is completed.
rsync-bugs [Wed, 9 Sep 1998 07:07:11 +0000 (07:07 +0000)]
preparing for release of 2.1.1
Andrew Tridgell [Wed, 9 Sep 1998 07:06:44 +0000 (07:06 +0000)]
fixed timestring() bug
Andrew Tridgell [Wed, 9 Sep 1998 06:37:13 +0000 (06:37 +0000)]
don't complain about not setting times on directories
because some filesystems can't do it
Andrew Tridgell [Wed, 9 Sep 1998 06:31:13 +0000 (06:31 +0000)]
handle sstem (sco 3) with glob but not glob.h
Andrew Tridgell [Wed, 9 Sep 1998 06:23:27 +0000 (06:23 +0000)]
handle OSes where you can't rename a open file in the cleanup code.
Andrew Tridgell [Wed, 9 Sep 1998 06:06:08 +0000 (06:06 +0000)]
put the time in when using log file.
Andrew Tridgell [Wed, 9 Sep 1998 05:57:34 +0000 (05:57 +0000)]
added finddead target, removed dead code and made some functions
static
Andrew Tridgell [Wed, 9 Sep 1998 05:52:25 +0000 (05:52 +0000)]
doc updates
Andrew Tridgell [Wed, 9 Sep 1998 05:51:42 +0000 (05:51 +0000)]
added "log file" option for those systems with broken syslog (like
AIX)
Andrew Tridgell [Wed, 9 Sep 1998 05:51:08 +0000 (05:51 +0000)]
wanr people who use path names to rsync ::
Andrew Tridgell [Thu, 27 Aug 1998 05:17:21 +0000 (05:17 +0000)]
fixed a small memory leak when using -C
thanks to kalt@research.bell-labs.com for this fix.
Andrew Tridgell [Thu, 27 Aug 1998 05:07:52 +0000 (05:07 +0000)]
removed the limit on the read buffer size until I fully understand the
interactions with ssh. The old ssh freezes have shown up again and
some debugging (with help from James Welborn) showed that the cause
was the read buffer hitting maximum size. I think this means that ssh
must be misbehaving about blocking IO.
This change gets rid of the freezes at the expense of memory
usage. Where it would have frozen it uses more memory instead.
Andrew Tridgell [Thu, 27 Aug 1998 05:05:14 +0000 (05:05 +0000)]
a couple of changes to where the nonblocking settings are called.
Andrew Tridgell [Sat, 25 Jul 1998 09:20:33 +0000 (09:20 +0000)]
fix PATTERN/FILE in --help output
Andrew Tridgell [Sat, 25 Jul 1998 02:25:22 +0000 (02:25 +0000)]
c was getting a bit unwieldy so I split the code into 3 modules,
for the 3 logical stages of rsync; generator, sender and receiver.
Andrew Tridgell [Thu, 23 Jul 1998 03:09:14 +0000 (03:09 +0000)]
fixed the relative paths bug pointed out by Alberto Accomazzi
rsync-bugs [Mon, 20 Jul 1998 05:43:51 +0000 (05:43 +0000)]
preparing for release of 2.1.0
Andrew Tridgell [Mon, 20 Jul 1998 05:36:25 +0000 (05:36 +0000)]
I think I might havefinally fixed the rsync hanging bug. It was caused
by a read during an io_flush() triggered during a readfd(). A simple
logic bug in the io code :(
Andrew Tridgell [Sun, 19 Jul 1998 10:51:26 +0000 (10:51 +0000)]
always use a timeout to select, even if --timeout is not
specified. This makes things easier to debug.
Andrew Tridgell [Sun, 19 Jul 1998 05:22:05 +0000 (05:22 +0000)]
- defer the error message from the options parsing until after the
socket is multiplexed. This allows clients sending new options which
the remote server doesn't understand to get a sensible error message.
Andrew Tridgell [Sun, 19 Jul 1998 04:50:48 +0000 (04:50 +0000)]
- close stdout and stderr and reopen then as /dev/null when running as
a daemon. This prevents library functions (such as getopt) stuffing up
our protocol stream when errors are detected.
- defer the error message from the options parsing until after the
socket is multiplexed. This allows clients sending new options which
the remote server doesn't understand to get a sensible error message.
rsync-bugs [Fri, 17 Jul 1998 14:53:00 +0000 (14:53 +0000)]
preparing for release of 2.0.19
Andrew Tridgell [Fri, 17 Jul 1998 14:42:59 +0000 (14:42 +0000)]
handle hard links on systems with 16 bit ino_t
Andrew Tridgell [Fri, 17 Jul 1998 14:25:14 +0000 (14:25 +0000)]
added a bit in the man page about the clean shell error
Andrew Tridgell [Fri, 17 Jul 1998 14:05:57 +0000 (14:05 +0000)]
check whether there is a / before a : in the rsync command line. If
there is then assume that the : is from a filename, not a host:dir
separator. This allows you to copy files with a : in them. (suggestion
from pfeifer@wait.de)
Andrew Tridgell [Fri, 17 Jul 1998 13:18:32 +0000 (13:18 +0000)]
make rsync behave more like GNU cp with regard to file permissions
when -p (preserve permissions) isn't set.
It works by taking the sending file permissions and masking them with
the umask to create the destination file permissions. (There is really
no "correct" way of doing this but at least we now behave like GNU cp
which fits the principle of least surprise.)
also fixed a race condition in copy_file()
Andrew Tridgell [Fri, 17 Jul 1998 10:00:48 +0000 (10:00 +0000)]
added the --safe-links option to disallow symlinks outside the
destination tree
Andrew Tridgell [Fri, 17 Jul 1998 10:00:43 +0000 (10:00 +0000)]
added the --safe-links option to disallow symlinks outside the
destination tree
Andrew Tridgell [Fri, 17 Jul 1998 07:42:04 +0000 (07:42 +0000)]
some code reformatting
Andrew Tridgell [Fri, 17 Jul 1998 07:26:08 +0000 (07:26 +0000)]
removed old "make dist" target
Andrew Tridgell [Fri, 17 Jul 1998 07:25:42 +0000 (07:25 +0000)]
changed wording of an error message
Andrew Tridgell [Fri, 17 Jul 1998 07:17:11 +0000 (07:17 +0000)]
moved getopt.h above unistd.h to prevent problems with uwin on NT
Andrew Tridgell [Fri, 17 Jul 1998 07:07:23 +0000 (07:07 +0000)]
fixed a problem with rsync buffering the debug output when redirected
to a file.
Andrew Tridgell [Fri, 17 Jul 1998 05:38:51 +0000 (05:38 +0000)]
make a function static
Andrew Tridgell [Fri, 17 Jul 1998 05:38:21 +0000 (05:38 +0000)]
remove a useless debug message
Andrew Tridgell [Fri, 17 Jul 1998 05:37:56 +0000 (05:37 +0000)]
code style change
Andrew Tridgell [Fri, 17 Jul 1998 05:37:18 +0000 (05:37 +0000)]
use error to detect lockfile open failures vs. max connections reached
and report an appropriate error message
Andrew Tridgell [Thu, 2 Jul 1998 10:57:20 +0000 (10:57 +0000)]
- use explicit flushes instead of setlinebuf. I've had reports of
verbose info not being line buffered to files.
- add a call to localtime() in open_log() in order to prime the C
libraries timezone cache before the chroot(). This should fix the
problem of rsyncd log entries being in GMT time.
Andrew Tridgell [Thu, 2 Jul 1998 03:02:14 +0000 (03:02 +0000)]
remove a redundent continue statement
Andrew Tridgell [Thu, 2 Jul 1998 02:59:04 +0000 (02:59 +0000)]
prioritise reading over writing in the select loop. (this is another
ssh-friendly attempt)
Andrew Tridgell [Thu, 2 Jul 1998 02:48:09 +0000 (02:48 +0000)]
fix the problem of --timeout waiting for twice the specified time.
Andrew Tridgell [Thu, 2 Jul 1998 02:08:55 +0000 (02:08 +0000)]
- don't show "created directory" message unless verbose is selected
- check for null buf in show_progress
Andrew Tridgell [Thu, 2 Jul 1998 01:28:39 +0000 (01:28 +0000)]
output progress % every 1k instead of every 1%, this is better for
large files.
Andrew Tridgell [Thu, 2 Jul 1998 01:27:51 +0000 (01:27 +0000)]
the recv_generator can be static
Andrew Tridgell [Thu, 2 Jul 1998 01:27:14 +0000 (01:27 +0000)]
enable output buffering in the recv generator. This makes a
significant difference when the transport is ssh as ssh will otherwise
output a complete frame for each checksum record, which increases the
checksum data in size by a factor of around 4.
Andrew Tridgell [Thu, 2 Jul 1998 00:48:20 +0000 (00:48 +0000)]
don't need to send --progress option to server as the server never
prints progress info.
Andrew Tridgell [Thu, 2 Jul 1998 00:47:13 +0000 (00:47 +0000)]
added --progress option which shows the progress of transfers. This
gives bored users something to watch.
Andrew Tridgell [Wed, 1 Jul 1998 11:03:50 +0000 (11:03 +0000)]
- only keep a partial file if some literal data has been transferred,
this prevents a second interrupted transfer from reducing the size of
the transferred file.
- set SIGUSR1 to SIG_IGN early to prevent a race condition that
prevents the --partial code from working properly
Andrew Tridgell [Wed, 1 Jul 1998 05:10:42 +0000 (05:10 +0000)]
I've had reports of rsyncd leaving zombies under digital unix. This
patch tries to address the problem in two ways:
1) reinstall the SIGCHLD handler before each fork
2) reap any children not caught by the handler using waitpid with
WNOHANG.
I expect this will fix the problem.
Andrew Tridgell [Wed, 1 Jul 1998 03:36:03 +0000 (03:36 +0000)]
added a --partial option which tells rsync to keep partially
transferred files if the transfer is interrupted.
added a "options summary" section to the man page
Andrew Tridgell [Fri, 19 Jun 1998 00:55:19 +0000 (00:55 +0000)]
if we get EWOULDBLOCK on a write then reduce the amount of data we are
trying to write. This guarantees that the maximum amount of data that
can be written at any one time is written.
Andrew Tridgell [Thu, 18 Jun 1998 14:15:16 +0000 (14:15 +0000)]
use LDFLAGS in Makefile.in (fix from arndt@schoenewald.de)
Andrew Tridgell [Thu, 18 Jun 1998 13:26:10 +0000 (13:26 +0000)]
fixed chmod bug pointed out by Han Holl <jeholl@euronet.nl>
rsync-bugs [Thu, 18 Jun 1998 13:06:00 +0000 (13:06 +0000)]
preparing for release of 2.0.18
Andrew Tridgell [Thu, 18 Jun 1998 12:17:23 +0000 (12:17 +0000)]
fixed a race condition in rsync that opened a security hole. The
temporary files were being created with the same permissions as the
original file. So if the file was setuid but not owned by the user
doing the transfer then there was a window of opportunity for a
malicious user to execute it with the wrong permissions while it was
being transferred.
Thanks to snabb@epipe.fi for pointing this out.
rsync-bugs [Thu, 18 Jun 1998 10:30:48 +0000 (10:30 +0000)]
preparing for release of 2.0.17
Andrew Tridgell [Thu, 18 Jun 1998 10:03:44 +0000 (10:03 +0000)]
if as non-root we failed to update the group of a file then don't
print the file name.
Andrew Tridgell [Thu, 18 Jun 1998 09:51:44 +0000 (09:51 +0000)]
for consistency use memcpy/memset everywhere instead of bcopy/bzero
Andrew Tridgell [Thu, 18 Jun 1998 09:37:21 +0000 (09:37 +0000)]
move include of compat.h after other includes.
Andrew Tridgell [Thu, 18 Jun 1998 09:36:24 +0000 (09:36 +0000)]
change the order of chmod and chown calls so that setuid bits don't
get removed by chown calls.
Andrew Tridgell [Thu, 18 Jun 1998 09:34:56 +0000 (09:34 +0000)]
set network file descriptors non-blocking before starting main rsync
algorithm.
Andrew Tridgell [Thu, 18 Jun 1998 09:33:46 +0000 (09:33 +0000)]
handle non-blocking file descriptors for both read and write. Add a
workaround for buggy systems that say there is space to write when
there isn't.
Andrew Tridgell [Thu, 18 Jun 1998 09:32:45 +0000 (09:32 +0000)]
put set_nonblocking() code back in.
Andrew Tridgell [Thu, 18 Jun 1998 09:31:42 +0000 (09:31 +0000)]
--help changes suggested by Francois
Andrew Tridgell [Thu, 18 Jun 1998 09:30:51 +0000 (09:30 +0000)]
manpage updates, mostly suggested by Francois
Andrew Tridgell [Wed, 3 Jun 1998 02:47:52 +0000 (02:47 +0000)]
the tag table should be of type int* not tag*.
This bug resulted in rsync being much less efficient that it could be
for files with more than 64k blocks. With the adaptive block size code
giving a maximum block size of 16k this means that files larger than
1GB were handled very inefficiently. The transfer was still accurate,
just slow.
Andrew Tridgell [Wed, 3 Jun 1998 02:35:51 +0000 (02:35 +0000)]
if the user passes a block size on the command line then don't adapt
the block size.
Andrew Tridgell [Tue, 2 Jun 1998 12:50:23 +0000 (12:50 +0000)]
added note to docs saying that --stats doesn't work unless -v is used
Andrew Tridgell [Tue, 2 Jun 1998 12:46:46 +0000 (12:46 +0000)]
added some fflush() calls to make sure the statistics lines are
printed when redirecting output to a file.
rsync-bugs [Mon, 1 Jun 1998 13:49:12 +0000 (13:49 +0000)]
preparing for release of 2.0.16
Andrew Tridgell [Mon, 1 Jun 1998 13:44:06 +0000 (13:44 +0000)]
added some notes to test.sh
Andrew Tridgell [Mon, 1 Jun 1998 13:39:54 +0000 (13:39 +0000)]
replace calls to strcmp() with a u_strcmp() function that uses only
unsigned comparisons. Transferring files between two machines that
treated strcmp() differently led to the files being given the wrong
name at the destination if the filenames had characters > 128 (such as
Kanji characters) and the source and destination machines treated
strcmp() differently (ie. one treated strings as signed and the other
as unsigned).
We now treat all string comparisons for file list sorting as unsigned.
Andrew Tridgell [Mon, 1 Jun 1998 10:38:24 +0000 (10:38 +0000)]
updated the usage info
Andrew Tridgell [Mon, 1 Jun 1998 03:42:14 +0000 (03:42 +0000)]
added --stats option for verbose stats on the file transfer
rsync-bugs [Sat, 30 May 1998 02:10:18 +0000 (02:10 +0000)]
preparing for release of 2.0.15
Andrew Tridgell [Sat, 30 May 1998 02:07:36 +0000 (02:07 +0000)]
replace BAD with zBAD so it compiles on AIX
Andrew Tridgell [Sat, 30 May 1998 02:03:29 +0000 (02:03 +0000)]
cosmetic fix.
reset offset to 0 at the start of each loop so the filenames get
printed correctly when sending directories followed by local names.
Andrew Tridgell [Sat, 30 May 1998 02:02:23 +0000 (02:02 +0000)]
make sure that io_flush() doesn't call writefd_unbuffered from within
a writefd_unbuffered call!
this should fix the "decompressor lost sync" bug
Andrew Tridgell [Fri, 29 May 1998 14:36:39 +0000 (14:36 +0000)]
replaced chdir and getcwd calls with push_dir/pop_dir functions. These
are faster and don't cause problems in a chrooted environment on any
systems.
rsync-bugs [Fri, 29 May 1998 02:29:33 +0000 (02:29 +0000)]
preparing for release of 2.0.14
Andrew Tridgell [Fri, 29 May 1998 02:28:33 +0000 (02:28 +0000)]
fixed a bug in the flist sending code that caused the flist sending to
get out of sync.
Andrew Tridgell [Thu, 28 May 1998 06:40:25 +0000 (06:40 +0000)]
use Realloc instead of realloc
Andrew Tridgell [Thu, 28 May 1998 06:29:57 +0000 (06:29 +0000)]
fix realloc call for systems that don't handle realloc(NULL, ...)
Andrew Tridgell [Thu, 28 May 1998 05:05:26 +0000 (05:05 +0000)]
don't do recursive deletion if the recurse option is not selected.
Andrew Tridgell [Thu, 28 May 1998 01:58:33 +0000 (01:58 +0000)]
cosmetic fix. don't display a EOF error when displaying just the motd
from a rsync server