trying to stat() any items inside that dir's hierarchy. This fixes
a bug where a symlink to a dir getting replaced by a dir with
identical contents to the dir at the other end of the symlink would
not report the updated files in the new hierarchy. (See bug #1673)
apply to the indicated (sender/receiver) side.
- Added the hide/show and protect/risk filter rules as an alternate
way to specify sender-/receiver-specific include/exclude rules.
- send_rules() now allows f_out to be -1 to indicate that the list
should be scanned but not sent.
- send_rules() now filters the list to remove any items that don't
apply to the current side (after sending the item to the other
side when f_out != -1).
- {send,recv}_filter_list() now transfer the list, even when the
receiver is the server and --delete-excluded was specified (the
exchanged list is appropriately filtered, of course).
- recv_filter_list() uses send_rules() to trim non-applicable rules
when we're a local-server (because we got our filter list without
send/recv calls when fork() duplicated it).
of all the conditional code to support that.
- Improved the comment before send_directory() to indicate that it
gets called with f == -1 from delete_in_dir().
have been refused on the server daemon. This allows us to reject
implied options (e.g. if --partial is refused and -P specified).
- Changed the handling of the --delete refusals from the old idiom
of upgrading "delete" to "delete*" into the new idiom of checking
if refused_delete is set when we determine --delete was implied.
- Changed the --del option from a popt alias into a normal option.
- Mark all the daemon options as refused when a daemon is parsing
the over-the-socket options.
- Created a new function, create_refuse_error(), which is now called
from all the spots that check for refused options.
- Don't call clean_fname() on an empty string -- either reject it
or handle it without erroneously expanding the string.
- If --delay-updates was specified without a --partial-dir option,
don't send the default "--partial-dir=.~tmp~" option if the server
is the receiver -- just let it default.
- Modified f_name_cmp() so that, beginning with protocol 29,
it will guarantee that a directory name will sort one slot
before its contents (prior versions could sort other items
in between in rare instances).
recv_filter_list(). Because of this, we never skip these
calls anymore, though read-batch processing indicates that
the list should not really be sent by setting f_out to -1.
- Moved the definintion of the "local_server" variable here
from options.c.
- Improved the debug info coming from add_rule().
- Changed add_filter() to parse_rule() and add_filter_file()
to parse_filter_file().
- Changed get_filter_tok() to parse_rule_tok().
- Made the mflags a uint32.
- Added an extra arg to get_rule_prefix() to indicate if we're
building the options for transmission or other purposes.
- The 'C' modifier can now be applied to a '-' rule, so it now
sets a new flag: MATCHFLG_CVS_IGNORE.
- The send_filter_list() and recv_filter_list() functions now handle
all the logic needed to do the right thing for -C (this used to be
in main.c).