git: cpdup - Multiple additions, fixes, and one removal
dillon at crater.dragonflybsd.org
Thu Dec 3 13:00:36 PST 2009
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Dec 3 12:55:24 2009 -0800
cpdup - Multiple additions, fixes, and one removal
* Make -x/-X (cpignore) work with remote sources.
* Add Makefile hack for _ST_FLAGS_PRESENT_ on FreeBSD.
* Suppress "Handshaked with <host>" and "Not running as root"
messages when the -q option was specified.
* Mount points are now skipped completely. (Before this,
the directories and .cpignore inside them were still read.)
* Extract scanning directories (src and dst) from DoCopy() into
a function ScanDir(), and use ScanDir() for both src and dst.
* Remove threads support. It never worked very well and is
getting in the way of new development. The intention is to
develop a more efficient pipelined algorithm in the future
which does not require threading the program.
* Use getopt(3) instead of non-standard parser, making sure
that all options still work exactly as documented in the
* Use fnmatch(3) instead of WildCmp(), adding support for
bracket expressions (e.g. [xyz0-9]) and escaping (e.g. foo\*).
I also suspect that fnmatch() is more efficient.
* Use the same syntax for remote paths as scp(1), so local paths
that contain colons can be specified (e.g. "./foo:bar");
extract that code into its own function SplitRemote().
* Add protocol commands hc_geteuid() and hc_getgroups().
Use them to properly check permissions for various operations
that would require root privileges on the target machine.
* Bugfix: If a symlink already existed on the target but the
owner/group didn't match, cpdup missed to update it.
Added a call to hc_lchown() to fix that, if privileges allow.
* Bugfix: The dispatch array wasn't initialized, so the slave
crashed upon an unknown command instead of calling rc_badop().
* Bump protocol version to 3 in order to be able to maintain
backwards compatibility with older clients.
* Bump utility version to 1.16.
* Make the source compile with WARNS=6.
It still doesn't pass -ansi -pedantic, though. :-)
* Document -j0, -k and -K in usage message (misc.c).
* Update the manual page, fix mdoc markup and various details.
* Add "ssh security tips" section to the BACKUPS text file.
Submitted-by: Oliver Fromme <olli at fromme.com>
Summary of changes:
bin/cpdup/BACKUPS | 64 ++++-
bin/cpdup/Makefile | 6 +-
bin/cpdup/PORTING | 6 +-
bin/cpdup/cpdup.1 | 141 ++++++----
bin/cpdup/cpdup.c | 838 +++++++++++++++++++++++++--------------------------
bin/cpdup/cpdup.h | 13 +-
bin/cpdup/hclink.c | 162 +----------
bin/cpdup/hclink.h | 18 +-
bin/cpdup/hcproto.c | 176 +++++++++--
bin/cpdup/hcproto.h | 7 +-
bin/cpdup/misc.c | 9 +-
11 files changed, 728 insertions(+), 712 deletions(-)
DragonFly BSD source repository
More information about the Commits