Wayne Davison [Sun, 30 Sep 2007 07:14:16 +0000 (07:14 +0000)]
Allow additional remote args to contain an identical hostname instead
of requiring it to be empty. This allows for the easy use of braces:
rsync -av host:file{1,2} /dest/
Wayne Davison [Sun, 30 Sep 2007 06:57:07 +0000 (06:57 +0000)]
- Moved become_daemon() here from socket.c and made it static.
- Call lp_load() before we call become_daemon().
- Output an error to stderr if we fail to open/parse the config file.
- Added a create_pid_file() static function and call it earlier in
the startup sequence.
Wayne Davison [Sun, 23 Sep 2007 15:46:11 +0000 (15:46 +0000)]
- Don't allow -x to drop implied directories.
- Improved the code that tries to avoid scanning the same dir
twice in a row to not drop any relnamecache entries.
Wayne Davison [Sun, 23 Sep 2007 02:00:53 +0000 (02:00 +0000)]
Moved list-only output from flist.c to generator.c so that it works
properly even in inc_recurse mode. Got rid of double output, weird
output order, and outputting of implied dirs w/--no-implied-dirs.
Wayne Davison [Sat, 22 Sep 2007 21:43:11 +0000 (21:43 +0000)]
Using relative with incremental recursion now results in a normal
sequence of directories in the hierarchy, and works properly when
merging things from multiple sources.
Wayne Davison [Sat, 22 Sep 2007 21:43:05 +0000 (21:43 +0000)]
- Incremented the SUBPROTOCOL_VERSION to 9.
- Fixed name of PTR_EXTRA_CNT (was PTR_EXTRA_LEN).
- Added F_DIR_RELS_P() to support --relative in inc_recurse mode.
Wayne Davison [Tue, 18 Sep 2007 01:11:49 +0000 (01:11 +0000)]
- Make use of new iconvbufs() function.
- 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.
Wayne Davison [Sat, 15 Sep 2007 19:58:09 +0000 (19:58 +0000)]
- Fixed an inc_recurse problem with implied dirs not getting created
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.
Wayne Davison [Sat, 15 Sep 2007 17:29:25 +0000 (17:29 +0000)]
- If two duplicate directories have identical outside-the-transfer
paths, we only scan one of them in inc_recurse mode.
- When unduplicating directories in inc_recurse mode, dump the
ealier directory if it is implied.
Wayne Davison [Sat, 15 Sep 2007 15:40:57 +0000 (15:40 +0000)]
- Parse hard-link info as soon as we get it in inc_recurse mode.
- Improve the chances of the generator finding a match for a
hard-link file in inc_recurse mode.
Wayne Davison [Mon, 10 Sep 2007 06:15:25 +0000 (06:15 +0000)]
- Simplified the flist-spanning gnum logic in match_gnums().
- 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.
Wayne Davison [Sun, 9 Sep 2007 07:53:15 +0000 (07:53 +0000)]
- If the user specifies a source arg with a hostspec in it in a local-
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.
Wayne Davison [Sun, 9 Sep 2007 07:53:12 +0000 (07:53 +0000)]
- Renamed read_line() to be read_line_old().
- 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.
Wayne Davison [Sun, 9 Sep 2007 07:53:05 +0000 (07:53 +0000)]
- Made start_socket_client() and start_inband_exchange() take a variable
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().