Wayne Davison [Thu, 26 Aug 2004 17:39:48 +0000 (17:39 +0000)]
Allow the use of the --exclude*/--include* options to a server
process again, but make sure that the user didn't specify a
server-excluded file for one of the --*-from options.
Wayne Davison [Wed, 11 Aug 2004 23:41:06 +0000 (23:41 +0000)]
- Call sanitize_path() with updated args.
- Added count_dir_elements() function.
- Changed the args for sanitize_path() so that the caller can request
the value for the rootdir and so that the caller tells us the current
subdir depth instead of sending us a string that we have to figure it
out from.
- Make sure that sanitize_path() doesn't mis-parse multiple adjacent
slashes.
Wayne Davison [Fri, 6 Aug 2004 21:24:14 +0000 (21:24 +0000)]
An improved clean_fname() routine that is more efficient and will also
collapse ".." dirs that aren't at the start of the path. Care was taken
to ensure that the cleaning of a name that goes over the socket is done
in the same way as the old code (because both sides call clean_fname()
on those file-list names). This ensures compatibility with older rsync
versions.
Wayne Davison [Thu, 5 Aug 2004 21:57:11 +0000 (21:57 +0000)]
Merged alloc_sanitize_path() into sanitize_path(), adding an extra arg
that indicates the destination dir for the resulting path (if the dest
is NULL, a buffer will be allocated) and having it return a value.
Wayne Davison [Thu, 5 Aug 2004 18:17:44 +0000 (18:17 +0000)]
In get_local_name(), if we would have created the destination dir but
were prevented by dry_run being set, increment dry_run so that the
generator knows that all the files are missing.
Wayne Davison [Wed, 4 Aug 2004 21:20:34 +0000 (21:20 +0000)]
In set_refuse_options(): make sure we scan the whole list of options
and avoid complaining about a wild-card spec that actually matches
one or more options.
Wayne Davison [Tue, 3 Aug 2004 08:05:29 +0000 (08:05 +0000)]
- Changed the calling syntax for map_file() so that it takes both
a (possibly approximate) window size and an optional block size
(which is used to round-up the window size if it is non-zero).
- Don't set window_start behind the supplied offset in map_ptr().
Wayne Davison [Tue, 3 Aug 2004 08:05:23 +0000 (08:05 +0000)]
We call map_ptr() with a data range than includes any unmatched data
(which we might need to reference again) in addition to the current
rolling-checksum block (this prevents the unmatched data from being
lost when we slide the buffer and read more data).
Wayne Davison [Mon, 2 Aug 2004 05:00:30 +0000 (05:00 +0000)]
- Extended the "refuse options" daemon setting to allow wildcards
and to allow single-letter option names.
- No need to send the various --delete* options or the --force option
from the receiver to the sender.
Wayne Davison [Mon, 2 Aug 2004 02:43:54 +0000 (02:43 +0000)]
- Changed "read so far" to "received so far".
- Output the who_am_i() information in the socket read/write errors to
make it a little clearer who is complaining about what (for those
familiar with rsync, at least -- e.g. it will help when users report
errors).
Wayne Davison [Sat, 31 Jul 2004 20:09:54 +0000 (20:09 +0000)]
- Changed all the errors in parse_arguments() to use the err_buf so
that a client talking to a daemon server actually gets the error.
- If a daemon has a list of exclusions, apply that list to various
options to ensure that an excluded file can't be affected.
- Fixed an arg-checking problem when --files-from got passed to a
daemon.
Wayne Davison [Sat, 31 Jul 2004 19:55:42 +0000 (19:55 +0000)]
If we need to return an error during the startup phase and the other
side is expecting us to send them a files-from list, send the list
terminator before sending the error.
Wayne Davison [Fri, 30 Jul 2004 20:07:52 +0000 (20:07 +0000)]
If someone is denied access to a "list = no" module, lie and tell them
that the module is "Unknown" (so the user can't probe to find unlisted
modules).
Wayne Davison [Fri, 30 Jul 2004 20:05:37 +0000 (20:05 +0000)]
Don't ignore case in lp_number() because the rest of the daemon code
can't handle the case where the module name doesn't exactly match the
string the user provided.
Wayne Davison [Fri, 30 Jul 2004 07:02:37 +0000 (07:02 +0000)]
If we reject a name due to a server-exclude, someone is trying to hack
rsync (because the generator would not have included this file). Respond
with an exit.
Wayne Davison [Thu, 29 Jul 2004 07:09:46 +0000 (07:09 +0000)]
If we fail writing to the socket and we're receiving error messages
from the other side via a multiplexed input, read the socket to see
if we get some errors that would explain why they went away.
Wayne Davison [Wed, 28 Jul 2004 10:04:06 +0000 (10:04 +0000)]
- Explicitly save the stat()'s errno so that we can be sure we're
testing the right thing lower down (and so that future code doesn't
always have to remember to save it off and restore it).
- Improved a chunk of link_dest code.
- Handle the removal of a non-regular file without so much duplicated
code.