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
manual page.
* 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@fromme.com>