Martin Willi [Wed, 7 May 2014 13:12:09 +0000 (15:12 +0200)]
Merge branch 'vici'
Introduces the vici plugin providing a Versatile IKE Configuration Interface
to configure, monitor and control the IKE daemon charon over a stable IPC
socket interface.
Martin Willi [Wed, 7 May 2014 10:55:30 +0000 (12:55 +0200)]
vici: Check if header has been received before processing an empty message
If do_read() returns with EWOULDBLOCK, we must ensure that we actually have
processed the full length header before checking the zero-initialized buffer
length.
Martin Willi [Tue, 29 Apr 2014 15:08:50 +0000 (17:08 +0200)]
vici: Increase vici message length header from 16 to 32 bits
While we currently have no need for messages larger than 65KB, we should design
the protocol to be future-proof, as we plan to keep at least to lowest protocol
layer stable.
To avoid any allocation issues, we currently keep the message size limit at
512KB.
Martin Willi [Wed, 9 Apr 2014 12:01:45 +0000 (14:01 +0200)]
vici: Use non-blocking first read when receiving message during client on_read()
As select() and finally the watcher may signal an FD even if it does not
actually have data, we must make a non-block read to avoid hanging in the
read callback.
Martin Willi [Wed, 12 Feb 2014 16:55:38 +0000 (17:55 +0100)]
vici: Refactor socket to clean up locking
Uses separate locks for socket read and write operations. While holding the
socket reader lock, a different thread can still claim the socket write lock.
This allows to asynchronously send event messages while holding the read
lock.
Martin Willi [Mon, 10 Mar 2014 09:48:27 +0000 (10:48 +0100)]
watcher: Don't wait for running callback once watcher thread cancelled
During shutdown, waiting for callbacks might never complete, as queued
callbacks might not get executed under certain conditions. Not the clean fix,
but works good enough for now.
Martin Willi [Tue, 18 Feb 2014 16:54:34 +0000 (17:54 +0100)]
watcher: Avoid queueing multiple watcher callbacks at the same time
While we don't add FDs with an active callback to the watched FDSET, we still
can get notifications for callbacks active due the asynchronous processing
of the same.
To avoid queue multiple callbacks, we check for queued callbacks before
activating new ones.
Martin Willi [Wed, 22 Jan 2014 15:55:27 +0000 (16:55 +0100)]
utils: Provide a CALLBACK macro, similar to METHOD, but for void* callbacks
Using the same mechanism as the METHOD macro, the CALLBACK macro defines
a hybrid function signature. It strictly uses a weak void* for the first
function parameter, in contrast to the dynamic METHOD object "this" type.
Tobias Brunner [Fri, 2 May 2014 15:58:26 +0000 (17:58 +0200)]
utils: Enable __atomic* built-ins based on the GCC version
This solves a problem with GNAT when compiling charon-tkm as __atomic*
built-ins are only provided in GCC 4.7 and newer.
Currently GNAT 4.6 and GCC 4.7.2 is shipped with Debian wheezy (stable),
as used in the testing environment. So while the configure script correctly
detected the __atomic* built-ins, and defined HAVE_GCC_ATOMIC_OPERATIONS,
this define turned out to be incorrect when charon-tkm was later built
with GNAT.
Andreas Steffen [Fri, 2 May 2014 18:10:53 +0000 (20:10 +0200)]
aikgen generates AIK private/public key pairs
aikgen outputs a binary AIK private key blob and the AIK public key.
Optionally the Identity Request encrypted with the public key of
the Privacy CA can be output.
Thomas Egerer [Thu, 13 Feb 2014 07:54:08 +0000 (08:54 +0100)]
unit-tests: Allow configuration of libstrongswan via config
By setting the environment variable TESTS_STRONGSWAN_CONF, the unit tests can
be asked to load a configuration file, thus enabling the tester to make use of
the usual configuration settings.
Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>