going on. The receiving side also switches timeout handling from the
receiver to the generator. Given this setup, all keep-alive messages
are now sent as empty MSG_DATA messages, with MSG_NOOP messages only
being understood and (when necessary) acted upon to forward a keep-alive
event to an older receiver. This is both safer and more compatible with
older versions.
This avoids a problem where an extra message from the sender
could give the generator time to start sending data that will
not be understood by the sender's use of read_msg_fd().
- Renamed push_dir() to change_dir() and revised it a little so that it
can chdir() to a relative path without an intervening chdir() back to
the staring path.
- Renamed push_pathname() to change_pathname() and revised it to take
different args and to only call path_is_daemon_excluded() on a new
path (not a revisit of a file's already-checked path).
- Fixed change_pathname() to set the right pathname value when a chdir()
call fails.
- Set orig_dir once outside of the change_pathname() function.
- Got rid of pop_dir().
- Moved setting of list_only and xfer_dirs from main.c to options.c.
- Fixed the ability of the user to force --no-dirs.
- Added the --old-dirs/--old-d option to make it easier to interact
in list-only mode with an older rsync.
- Suggest the use of --old-d instead of "-r --exclude='/*/*'".
- Removed the CFN_KEEP_LEADING_DOT_DIR flag for clean_fname().
- Explicitly add an implied dot-dir to the transfer rather than keeping
a leading a "./" prefix as a part of a relative pathname.
- Added the CFN_KEEP_DOT_DIRS flag for clean_fname().
- Added the SP_KEEP_DOT_DIRS flag for sanitize_path().
- Call clean_fname() a couple more times.
- Convert protected args when -s and --iconv are active.
- Simplified the splitting of args between normal and protected.
- Relocated setup_iconv() call so that it takes effect earlier.
source transer, complain and exit. This can help to find option
problems were an arg to an option turns into a local-source arg,
and the real remote-source arg will now get rejected rather than
attempting to find a file with a colon in its name.
- We now support the ability to specify more than one remote arg using
the ":FILENAME" idiom for additional remote filenames.
- If the --protect-args (-s) option was specified, we send just the
"--server -s" options to the remote rsync when it is starting, and
then the real args are sent over the socket.