- 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.
with the right attributes and getting omitted from the output.
- Got rid of the directory touch-up pass in inc_recurse mode again.
This requires us to create any missing directories early, but we
still report on what happened in the normal course of the transfer
sequence.
- Use the FLAG_DIR_CREATED flag instead of (the removed)
new_root_dir global.
- Don't use hlink_flist in hard_link_check().
- Made the prev_name logic in hard_link_check() better.
- Added an "ndx" arg to the finish_hard_link() call. Also, set the
prev value of any prior entries to the first finished item (which
ensures that any item that follows a re-shuffled item (which was
waiting for a transferred file to finish) can find the FIRST+DONE
item.
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.
- Renamed read_filesfrom_line() to read_line() and added args to allow
the caller to control how it works.
- Added a new function, read_args(), that reads args from a file
descriptor (using read_line()) and expands any wildcards in them.
This function has relocated daemon code (from clientserver.c) and
is also used by the new --protect-args (-s) option. The new code
also got rid of an extra strdup() that wasn't needed.
number of remote args.
- We now exchange a "VERSION.SUBVERSION" value in the initial @RSYNCD
message. This is backward compatible with pre-protocol 30 rsyncs,
and fixes a problem where rsync daemons weren't checking if they were
speaking a compatible pre-release protocol.
- Moved the protocol-handling code (which was in two places) into a new
function: exchange_protocols().
- Protocol 30 now sends/receives the daemon args using NULLs as a separator
rather than a newline.
- Moved the arg-reading code into a new function in io.c: read_args().