Wayne Davison [Tue, 10 Jul 2007 14:21:59 +0000 (14:21 +0000)]
- Use "filename", not "file name".
- Say "regular file" instead of "file" when itemizing a list of
non-directory types.
- Try to avoid "file" in its generic sense, as it is hard to figure
out when it includes dirs and when it doesn't.
Wayne Davison [Tue, 10 Jul 2007 13:55:49 +0000 (13:55 +0000)]
Tweaking the license text a bit more.
Wayne Davison [Mon, 9 Jul 2007 01:24:01 +0000 (01:24 +0000)]
Martin gave his approval to use GPLv3 with this code.
Wayne Davison [Sun, 8 Jul 2007 20:53:42 +0000 (20:53 +0000)]
- Do directory touch-ups at the end, even in inc-recurse mode.
- Use the latest F_DIR_*() defines (whose names were tweaked).
Wayne Davison [Sun, 8 Jul 2007 20:53:38 +0000 (20:53 +0000)]
- Use the new DEV_EXTRA_CNT and DIRNODE_EXTRA_CNT defines.
- Use the latest F_DIR_*() defines (whose names were tweaked).
Wayne Davison [Sun, 8 Jul 2007 20:53:35 +0000 (20:53 +0000)]
Use the latest F_DIR_*() defines (whose names were tweaked).
Wayne Davison [Sun, 8 Jul 2007 20:53:31 +0000 (20:53 +0000)]
- Define DEV_EXTRA_CNT and DIRNODE_EXTRA_CNT.
- Define and use ACL_BUMP(), fixing a clash between -A and -x in a
directory's data.
- Tweaked the F_DIR_*() defines to have more consistent names.
- Don't make F_SUM() return a char pointer that is const.
Wayne Davison [Sun, 8 Jul 2007 06:30:28 +0000 (06:30 +0000)]
Changed the spots that referred to the filter_level as filter_flags
to make the naming consistent.
Wayne Davison [Sun, 8 Jul 2007 06:25:57 +0000 (06:25 +0000)]
Added a test for --prune-empty-dirs.
Wayne Davison [Sun, 8 Jul 2007 06:25:54 +0000 (06:25 +0000)]
Got rid of the output differences for protocol 30 since it is now
the same as earlier protocols.
Wayne Davison [Sun, 8 Jul 2007 06:25:51 +0000 (06:25 +0000)]
- Incremental recursion mode does not process the dirs while scanning a
file list's contents. Instead, it handles a parent dir prior to each
extra file list. This makes the dir-processing order the same in
protocol 30 as it is in earlier protocols.
- Moved the permission-fudging code for dirs into recv_generator() to
make the new protocol-30 dir-handling logic easier.
Wayne Davison [Sun, 8 Jul 2007 06:25:47 +0000 (06:25 +0000)]
If we get an ndx that is 1 entry prior to an incremental flist's
start, it refers to the file list's parent dir.
Wayne Davison [Sun, 8 Jul 2007 06:25:42 +0000 (06:25 +0000)]
- The sending side now sets the parent_ndx value in each file list.
- Leave a 1-entry gap between incremental file lists so that we can use
that index value to refer to the parent directory of each file list.
- Set and use the new ndx_end value in the file list. The incremental
recursion mode omits dirs in this value (except in the first list)
since the generator will be using the new "gap" ndx value to process
each parent dir.
Wayne Davison [Sun, 8 Jul 2007 06:25:36 +0000 (06:25 +0000)]
- Increased the SUBPROTOCOL_VERSION to 4 due to the new dir-ndx logic.
- Added ndx_end value to struct file_list.
Wayne Davison [Sat, 7 Jul 2007 20:43:14 +0000 (20:43 +0000)]
Avoid the prune-empty-dir code when cleaning a file list created
by get_dirlist().
Wayne Davison [Sat, 7 Jul 2007 20:22:05 +0000 (20:22 +0000)]
Changed "count" to "used" in struct file_list since there can
be empty items that make the count inaccurate (and the name
somewhat deceiving).
Wayne Davison [Sat, 7 Jul 2007 16:01:59 +0000 (16:01 +0000)]
The length check in make_file() doesn't need to subtract pathname_len
anymore, as the sender code never concatenates the F_PATHNAME() value
with the dirname+basename string these days.
Wayne Davison [Sat, 7 Jul 2007 15:37:56 +0000 (15:37 +0000)]
Make the comment even better.
Wayne Davison [Sat, 7 Jul 2007 05:33:14 +0000 (05:33 +0000)]
Switching to GPL 3.
Wayne Davison [Sat, 7 Jul 2007 05:25:50 +0000 (05:25 +0000)]
Tweaked a comment to remove a (really old) rsync version reference.
Wayne Davison [Mon, 2 Jul 2007 22:11:23 +0000 (22:11 +0000)]
Switch the checking of preserve_[ug]id var to checking [ug]id_ndx var
when the code is about to use the [ug]id_ndx value as an index (since
this saves a memory reference).
Wayne Davison [Mon, 2 Jul 2007 22:06:48 +0000 (22:06 +0000)]
Use module_dir instead of lp_path().
Wayne Davison [Mon, 2 Jul 2007 22:02:14 +0000 (22:02 +0000)]
If a module's path is not absolute, make it absolute.
Wayne Davison [Mon, 2 Jul 2007 21:35:14 +0000 (21:35 +0000)]
We omit copying any user-space %FOO attributes unless the
user specified -X twice.
Wayne Davison [Mon, 2 Jul 2007 21:29:49 +0000 (21:29 +0000)]
Make option variables a little clearer by using separate FOO_ndx
values to index into the file-list extra-attribute array instead
of abusing the preserve_FOO variables.
Wayne Davison [Wed, 6 Jun 2007 15:43:34 +0000 (15:43 +0000)]
Decided against the last change.
Wayne Davison [Wed, 6 Jun 2007 15:38:31 +0000 (15:38 +0000)]
Allow a NULL address to be passed to pool_free_old() to indicate that
it should free all old mem and reset to an empty state.
Wayne Davison [Sat, 2 Jun 2007 16:44:23 +0000 (16:44 +0000)]
Check for the setacl command for Tru64 (which doesn't have setfacl).
Wayne Davison [Sat, 2 Jun 2007 16:30:04 +0000 (16:30 +0000)]
Attempting to make the mask test compatible with Solaris 8.
Wayne Davison [Tue, 29 May 2007 04:23:50 +0000 (04:23 +0000)]
Mention the pool_alloc changes.
Wayne Davison [Tue, 29 May 2007 04:19:47 +0000 (04:19 +0000)]
Unified the file-list pool used in incremental recursion mode so that
we use less memory, especially in small transfers. As file lists are
discarded, we use the new pool_boundary() and pool_free_old() functions
to discard pool extents that are no longer needed.
Wayne Davison [Tue, 29 May 2007 04:19:44 +0000 (04:19 +0000)]
- Changed FILE_EXTENT to NORMAL_EXTENT and HLINK_EXTENT to SMALL_EXTENT.
- Added a pool_boundary variable to struct file_list.
Wayne Davison [Tue, 29 May 2007 04:19:41 +0000 (04:19 +0000)]
Added pool_free_old() and pool_boundary() functions to add a way to
free all wholly affected extents older than a particular point in time.
Wayne Davison [Tue, 29 May 2007 02:47:23 +0000 (02:47 +0000)]
Tweaked a variable and a label to make them less confusing.
Wayne Davison [Tue, 29 May 2007 02:46:44 +0000 (02:46 +0000)]
Improvements to increase clarity, fix misstatements, add missing
punctuation, and fix some typos.
Wayne Davison [Tue, 29 May 2007 00:52:08 +0000 (00:52 +0000)]
- Fixed a bug where a pool_free() on the most-recently allocated pool
item was trying to make that memory available to the pool, but it
failed to adjust the right variable.
- Fixed a bug in pool_free() where the return of the entire live
extent back to unallocated status did not obey POOL_CLEAR.
- Use the new() and new_array() functions instead of malloc().
- Changed the sqew variable to skew.
- Some other minor formatting tweaks.
Wayne Davison [Sat, 26 May 2007 21:46:22 +0000 (21:46 +0000)]
- Do less seeking when writing a sparse file.
- Don't rewrite the last byte of a file in sparse mode when the
file didn't end with a null char.
Wayne Davison [Sat, 26 May 2007 21:44:19 +0000 (21:44 +0000)]
Handle EINTR in a couple places where we handle the --file-from I/O.
Wayne Davison [Fri, 25 May 2007 14:32:08 +0000 (14:32 +0000)]
Changed verbosity back from -vvvv to -vv.
Wayne Davison [Fri, 25 May 2007 14:29:35 +0000 (14:29 +0000)]
Improved the sort comment.
Wayne Davison [Fri, 25 May 2007 14:23:05 +0000 (14:23 +0000)]
Improved a comment.
Wayne Davison [Fri, 25 May 2007 14:16:57 +0000 (14:16 +0000)]
Got rid of superfluous acl_clear_perms() call that Antti Tapaninen
pointed out.
Wayne Davison [Thu, 24 May 2007 23:11:33 +0000 (23:11 +0000)]
Mention latest improvements.
Wayne Davison [Thu, 24 May 2007 23:08:39 +0000 (23:08 +0000)]
Changed dup-detection code to keep the first item in the user's args.
This is more in keeping with the way cp works, and also makes the dir-
joining code (in inc_recurse mode) easier.
Wayne Davison [Thu, 24 May 2007 02:50:41 +0000 (02:50 +0000)]
- Added fsort() and fsort_tmp() that implement a mergesort routine
that ensures that any identical items in the file-list stay in the
same order as they had in the input. It will also obey the --qsort
option (which causes it to punt the sort to the qsort() routine).
- Changed the various places that sort the file-list to call fsort().
Wayne Davison [Thu, 24 May 2007 02:50:38 +0000 (02:50 +0000)]
If someone forces the use of qsort() via --qsort, disable incremental
recursion (at least for now).
Wayne Davison [Thu, 24 May 2007 02:50:35 +0000 (02:50 +0000)]
- Added the --qsort option.
- Added several new --no-FOO options.
Wayne Davison [Wed, 23 May 2007 00:48:27 +0000 (00:48 +0000)]
Make sure we don't try to output a NULL pointer in a verbose message.
Wayne Davison [Wed, 23 May 2007 00:42:38 +0000 (00:42 +0000)]
- Output a -vvv(erbose) message in the touch_up_dirs() loop.
- Made the keep-alive counter in touch_up_dirs() work better.
- Use !(N & 0xFF) instead of !(N % 200).
Wayne Davison [Wed, 23 May 2007 00:42:32 +0000 (00:42 +0000)]
Output a -vvv(erbose) message when receiving an incremental file list.
Wayne Davison [Tue, 22 May 2007 05:59:02 +0000 (05:59 +0000)]
Added a comment to the do_chmod() to mark it as a discouraged function.
Wayne Davison [Tue, 22 May 2007 05:58:59 +0000 (05:58 +0000)]
Added a comment to a shared iterator to avoid a warning from IBM's checker.
Wayne Davison [Tue, 22 May 2007 05:50:47 +0000 (05:50 +0000)]
- Changed the dir_flist code on the sending side to derive its sorted
data from the sorted parent flist. This ensures that any entries
marked with FLAG_DUPLICATE are in the same order in the dir_flist
(where the flags get checked) as they are in the parent flist
(where the flags get set).
- Made the flist_expand() function static.
- Added a growth count arg to flist_expand().
- Made make_file() set a pool variable instead of tweaking flist.
- Improved the error message when a dir-number is out of bounds.
Wayne Davison [Tue, 22 May 2007 05:50:41 +0000 (05:50 +0000)]
Improved the error message when a dir-number is out of bounds.
Wayne Davison [Tue, 22 May 2007 03:58:18 +0000 (03:58 +0000)]
One more output_flist() call that should verify if my analysis
of the Solaris 10 host's merge-test failure is correct or not.
Wayne Davison [Tue, 22 May 2007 00:00:51 +0000 (00:00 +0000)]
Be more verbose so that we can debug what is going wrong on solaris.
Wayne Davison [Tue, 22 May 2007 00:00:07 +0000 (00:00 +0000)]
Improved the index values that output_flist() outputs when we're being
extra verbose: they now have the list's ndx_start value added in.
Wayne Davison [Mon, 21 May 2007 23:45:26 +0000 (23:45 +0000)]
One more try at silencing some checker warnings.
Wayne Davison [Mon, 21 May 2007 18:39:05 +0000 (18:39 +0000)]
Let's see if we can silence some more code-checker warnings.
Wayne Davison [Mon, 21 May 2007 10:20:18 +0000 (10:20 +0000)]
Added some "FALL THROUGH" comments in the main switch.
Wayne Davison [Mon, 21 May 2007 03:56:06 +0000 (03:56 +0000)]
Get rid of compiler warning about iconv()'s second parameter.
Wayne Davison [Mon, 21 May 2007 03:20:39 +0000 (03:20 +0000)]
Fixed a thinko in the calling of recv_add_gid().
Wayne Davison [Mon, 21 May 2007 03:09:25 +0000 (03:09 +0000)]
Got rid of the temporary "set -x" that was added for debugging.
Wayne Davison [Mon, 21 May 2007 03:08:55 +0000 (03:08 +0000)]
The match_gid() function needed to affect the *flags_ptr value
when re-using the last-found match.
Wayne Davison [Mon, 21 May 2007 03:08:01 +0000 (03:08 +0000)]
The recv_file_entry() function needed to remember the gid flags so that
it can reuse them when the gid stays the same.
Wayne Davison [Mon, 21 May 2007 02:31:20 +0000 (02:31 +0000)]
Set -x option to diagnose what is going wrong on FreeBSD.
Wayne Davison [Mon, 21 May 2007 02:17:48 +0000 (02:17 +0000)]
Cast some F_OWNER()/F_GROUP() values to make sure that we don't get
a signed/unsigned compiler warning on some systems.
Wayne Davison [Mon, 21 May 2007 02:09:45 +0000 (02:09 +0000)]
Fixed a problem in a couple OS's sys_acl_get_access_bits() functions.
Wayne Davison [Mon, 21 May 2007 02:06:51 +0000 (02:06 +0000)]
Make sure that the scratch dirs have rwx permissions before we try
a recursive rm.
Wayne Davison [Mon, 21 May 2007 01:06:16 +0000 (01:06 +0000)]
Tweaked a sentence in the --size-only section.
Wayne Davison [Mon, 21 May 2007 01:05:36 +0000 (01:05 +0000)]
Create a symlink back to the source dir in the scratchdir of a test.
Wayne Davison [Mon, 21 May 2007 01:04:40 +0000 (01:04 +0000)]
- Unified the formerly separate user & group name-lists into a single
name-list. On POSIX systems, this list will be sorted with the user
names first, so the code will work essentially the same way it did
before for the currently supported OSes. However, the code will now
more easily support non-POSIX ACL setups such as (hopefully) the one
used in OS X.
- Increased the (potentially) available access-bit storage for name
elements from 3 to 31 bits. For non-name elements, the access bits
now have the potential to store 7 bits instead of 3. (All the
current POSIX implementations still error-check their values at 3
bits, but this will allow adding non-POSIX ACL setups more easily.)
- The protocol that transmits the ACL information was changed to send
names in a single list, and to use {read,write}_varint() functions
instead of {read,write}_byte(). This supports sending access-bit
values up to 32-bits (minus any bits reserved for xmit flags).
- The construction of the internal access-bit value was moved into the
lib/sysacls.c code, so that it could be handled in an appropriate
manner for each OS.
(Aside: the code still does not support transmitting incompatible ACL
information between systems, but I envision improving --fake-super to
store the ACL information that is received as xattr information, and
this would allow a system that supports extended attributes to backup
a source system that had an incompatible ACL method.)
Wayne Davison [Mon, 21 May 2007 01:04:37 +0000 (01:04 +0000)]
- Define what the valid access bits are for a name element and a
non-name element.
- Set a define when the OS needs the name-list sorted.
- Got rid of the permset-related defines.
- Got rid of some function prototypes that rsync doesn't need.
- Got rid of the defines for the do-nothing ACL code.
Wayne Davison [Mon, 21 May 2007 01:04:34 +0000 (01:04 +0000)]
- Added a function to get/set all the access-bit values with a single
call. This allows the per-OS compatibility code to construct the
value with however many bits are supported by each OS.
- Removed several functions that rsync doesn't (and won't) need.
- Got rid of the do-nothing ACL code (the ACL code in rsync should be
disabled on a system that we can't support).
Wayne Davison [Mon, 21 May 2007 01:04:31 +0000 (01:04 +0000)]
Changed SUBPROTOCOL_VERSION from 2 to 3 because of the ACL protocol changes.
Wayne Davison [Sun, 20 May 2007 07:40:07 +0000 (07:40 +0000)]
Moved GID_NONE define from rsync.h to uidlist.c.
Wayne Davison [Sun, 20 May 2007 07:10:48 +0000 (07:10 +0000)]
- Added more users and some groups to one of the files we're copying.
Wayne Davison [Sun, 20 May 2007 07:10:45 +0000 (07:10 +0000)]
- Use F_OWNER() and F_GROUP() instead of F_UID() and F_GID().
Wayne Davison [Sun, 20 May 2007 07:10:41 +0000 (07:10 +0000)]
- Use F_OWNER() and F_GROUP() instead of F_UID() and F_GID().
- Use the new FLAG_SKIP_GROUP define.
Wayne Davison [Sun, 20 May 2007 07:10:37 +0000 (07:10 +0000)]
- Use F_OWNER() and F_GROUP() instead of F_UID() and F_GID().
- Made recv_file_entry() name the xmit-flags variable "xflags" to
prevent confusion with the internal flags value we're creating.
- Added an arg to the calls of recv_group_name() and match_gid().
- Use the improved function names: send_id_list() and recv_id_list().
- Improved the display of the GID values in output_flist().
Wayne Davison [Sun, 20 May 2007 07:10:34 +0000 (07:10 +0000)]
- Fixed a bug in the match_racl_ids() function's iteration.
- Fixed a bug with preserving a group ID in an ACL when running as
a non-super user that the user is not a member of.
Wayne Davison [Sun, 20 May 2007 07:10:31 +0000 (07:10 +0000)]
- Changed id & id2 from int to id_t in the struct iflist.
- Added a uint16 flags var to struct iflist.
- We now mark a group with FLAG_SKIP_GROUP if the receiving user
can't set a group rather than turning it into GID_NONE. This
allows us to keep the real group ID mapping, which is needed by
the ACL code.
Wayne Davison [Sun, 20 May 2007 07:10:28 +0000 (07:10 +0000)]
- Added FLAG_SKIP_GROUP define.
- Removed F_UID() and F_GID() defines.
Wayne Davison [Tue, 8 May 2007 17:04:05 +0000 (17:04 +0000)]
A couple more minor tweaks.
Wayne Davison [Tue, 8 May 2007 17:01:24 +0000 (17:01 +0000)]
Improved the documentation on the "quick check" algorithm and the
--size-only option.
Wayne Davison [Sun, 6 May 2007 19:44:26 +0000 (19:44 +0000)]
If the server is exiting with an error, delay our exit just a little
in order to give the client side a better chance of reading any error
message we just sent.
Wayne Davison [Sat, 5 May 2007 18:34:37 +0000 (18:34 +0000)]
Clumped some option-sending together that only happens on the sending side.
Wayne Davison [Mon, 30 Apr 2007 02:58:14 +0000 (02:58 +0000)]
Try a better way to deduce if the xattr functions we need are there.
Wayne Davison [Sun, 29 Apr 2007 15:01:57 +0000 (15:01 +0000)]
Added a "sleep 1" to make certain failures more reproducible.
Wayne Davison [Sat, 28 Apr 2007 23:47:16 +0000 (23:47 +0000)]
Use the --super option for the non-fake test, just in case a system
can chown without appearing to be root (uid 0).
Wayne Davison [Sat, 28 Apr 2007 18:40:23 +0000 (18:40 +0000)]
If the lgetxattr() function isn't found, disable xattr support.
Wayne Davison [Sat, 28 Apr 2007 17:22:53 +0000 (17:22 +0000)]
Authorize 10.0.1.2 for one of the BSD test-farm systems.
Wayne Davison [Fri, 27 Apr 2007 14:09:22 +0000 (14:09 +0000)]
Improved the --iconv description.
Wayne Davison [Fri, 27 Apr 2007 13:52:07 +0000 (13:52 +0000)]
Added the $(CHECK_SYMLINKS) var to installcheck target.
Wayne Davison [Fri, 27 Apr 2007 00:19:21 +0000 (00:19 +0000)]
Fixed the buildability of the file without ICONV_OPTION enabled.
Wayne Davison [Fri, 27 Apr 2007 00:19:02 +0000 (00:19 +0000)]
Fixed the comment about --iconv.
Wayne Davison [Thu, 26 Apr 2007 23:15:51 +0000 (23:15 +0000)]
Got rid of the --no-ir kluge in this test.
Wayne Davison [Thu, 26 Apr 2007 23:15:47 +0000 (23:15 +0000)]
- Fixed the merging of duplicated directory hierarchies in incremental
recursion mode.
- Fixed some problems with --iconv in incremental recursion mode.
Wayne Davison [Thu, 26 Apr 2007 23:15:43 +0000 (23:15 +0000)]
Refer to the right sorted/unsorted file list array in touch_up_dirs().
Wayne Davison [Thu, 26 Apr 2007 23:15:39 +0000 (23:15 +0000)]
The server now needs the F_NDX() data for --iconv with incremental
recursion.