History log of /dflybsd-src/bin/cpdup/hclink.h (Results 1 – 11 of 11)
Revision Date Author Comments
# 8bf5b238 06-Jun-2018 Matthew Dillon <dillon@apollo.backplane.com>

cpdup - Fix NULL pointer indirection on lost socket

* Fix a crash which can occur due to a lost socket. Generate a
nice error message and exit() instead.


# 75bd842a 30-May-2013 Matthew Dillon <dillon@apollo.backplane.com>

cpdup - roll 1.18 for ports consumers

* Add the -n option. This is the not-for-real option. cpdup will go through
the motions but not actually take any action. Useful for validating a
topolog

cpdup - roll 1.18 for ports consumers

* Add the -n option. This is the not-for-real option. cpdup will go through
the motions but not actually take any action. Useful for validating a
topology without modifying it, e.g. 'cpdup -n -v -VV source target'.

* Fix clang static/global and alignment warnings

* Bump rev to 1.18

* Porters please note that this release has added an __aligned(n)
directive to two structures. BSDs and linux's should be able to
handle this no-problem but just like __printflike() it is a bit
of a departure from standard.

* Ports URL: fetch http://apollo.backplane.com/FreeBSDPorts/cpdup-1.18.tar.gz

Submitted-by: (static/global fixes) "Eitan Adler" <lists@eitanadler.com>
Submitted-by: (n-option & alignment fixes) dillon
Testing-by: "Eitan Adler" <lists@eitanadler.com>

show more ...


# c0538630 19-Jul-2010 Matthew Dillon <dillon@apollo.backplane.com>

cpdup - Add several new features

* Add -R option for ssh authorized_key based slave mode.
* Add byte order detection and handling.
* Improve remote directory scan performance.
* Add Sun compatibilit

cpdup - Add several new features

* Add -R option for ssh authorized_key based slave mode.
* Add byte order detection and handling.
* Improve remote directory scan performance.
* Add Sun compatibility files for completeness.

Submitted-by: Oliver Fromme <olli@fromme.com>

show more ...


# 293141b7 03-Dec-2009 Matthew Dillon <dillon@apollo.backplane.com>

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

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>

show more ...


# 713d03c0 24-May-2008 Matthew Dillon <dillon@dragonflybsd.org>

Use a per-bucket mutex to reduce contention and fix a seg-fault from a
race in the transaction hash table.


# 07424787 23-May-2008 Matthew Dillon <dillon@dragonflybsd.org>

Fix a pipelining performance issue due to the way reading from the socket
was implemented. Instead of having the threads compete for read-access to
the socket, create a single thread whos responsibi

Fix a pipelining performance issue due to the way reading from the socket
was implemented. Instead of having the threads compete for read-access to
the socket, create a single thread whos responsibility is to read traffic
from the socket and route it to the appropriate transaction. This greatly
improves parallel threading performance for cpdup's to remote hosts.

show more ...


# 975200d7 14-Apr-2008 Matthew Dillon <dillon@dragonflybsd.org>

Fix multiple issues with -p<parallel>, including several data corruption
issues.

* Use malloc'd buffers instead of static buffers
* Fix memory leaks
* Fix races with hardlink tracking structures
* F

Fix multiple issues with -p<parallel>, including several data corruption
issues.

* Use malloc'd buffers instead of static buffers
* Fix memory leaks
* Fix races with hardlink tracking structures
* Fix bug in remote mknod (it wasn't creating the node on the remote host)
* Fix stack blowouts from deep recursions by starting a new thread.
* Postpend the pid for tmp file creation.

show more ...


# bbbecb58 11-Apr-2008 Matthew Dillon <dillon@dragonflybsd.org>

Properly mark a transaction has being completed so the slave side of
the connection does not loop forever on its data.


# 44dd1628 11-Apr-2008 Matthew Dillon <dillon@dragonflybsd.org>

More cpdup work.

* Add -C which is passed down to ssh to turn on compression.
* Fix a race condition in the hardlink handling code that could occur w/ -pN
* Fix a deadlock in the socket read code.

More cpdup work.

* Add -C which is passed down to ssh to turn on compression.
* Fix a race condition in the hardlink handling code that could occur w/ -pN
* Fix a deadlock in the socket read code. The connection's read mutex
must be released before the master mutex can be re-acquired.
* Reduce the I/O block size when running parallel threads to try to avoid
blocking on write().

show more ...


# a2dc574c 10-Apr-2008 Matthew Dillon <dillon@dragonflybsd.org>

Add parallel transaction support for remote source or target specifications.
The implementation is a bit crude because I don't want to take too many
chances on a codebase that wasn't originally desig

Add parallel transaction support for remote source or target specifications.
The implementation is a bit crude because I don't want to take too many
chances on a codebase that wasn't originally designed to be multi-threaded,
so the master mutex is only released when a thread is waiting for input
on a socket.

* Add the -p<threads> option and compile -pthread by default. This is only
useful when the source and/or destination is a remote host. Note that
parallel transaction mode will not work with older cpdup binaries on the
remote end.

This greatly improves cpdup's performance when operating on a remote
source and/or target.

* Add -l to force stdout and stderr to be line-buffered.

show more ...


# 4d858d58 13-Aug-2006 Matthew Dillon <dillon@dragonflybsd.org>

Add a remote host capability for both the source and target directory
specifications. A specification in the form user@host:path will initiate
a ssh link to the remote machine and attempt to run a c

Add a remote host capability for both the source and target directory
specifications. A specification in the form user@host:path will initiate
a ssh link to the remote machine and attempt to run a cpdup slave.

The protocol is not all that fast but it is a good start. The cpignore
and md5 features are not currently available for remote sources and the
fsmid feature is not currently available for remote targets. However, the
incremental backup feature (-H) *IS* available.

The code is currently considered to be highly experimental and does
not yet adjust for mismatched byte orderings (but the protocol is designed
to make this possible in the future).

show more ...