strongswan/src/libcharon
Martin Willi d20be3fa28 vici: Defer read/write error reporting after connection entry has been released
If a vici client registered for (control-)log events, but a vici read/write
operation fails, this may result in a deadlock. The attempt to write to the
bus results in a vici log message, which in turn tries to acquire the lock
for the entry currently held.

While a recursive lock could help as well for a single thread, there is still
a risk of inter-thread races if there is more than one thread listening for
events and/or having read/write errors.

We instead log to a local buffer, and write to the bus not before the connection
entry has been released. Additionally, we mark the connection entry as unusable
to avoid writing to the failed socket again, potentially triggering an error
loop.
2015-04-13 15:08:10 +02:00
..
attributes mem-pool: Remove entries without online or offline leases 2015-03-19 09:55:56 +01:00
bus bus: Add an ike_update() hook invoked when peer endpoints change 2015-02-20 15:33:59 +01:00
config proposal: Add default PRF for HMAC-MD5-128 and HMAC-SHA1-160 integrity algorithms 2014-10-31 10:09:54 +01:00
control ike-sa-manager: Remove IKE_SA checkout by CHILD_SA reqid 2015-02-20 13:34:51 +01:00
encoding encoding: Remove DH public value verification from KE payload 2015-03-23 17:54:03 +01:00
kernel kernel-handler: Log new endpoint if NAT mapping changed 2015-03-19 09:54:10 +01:00
network receiver: Send a single INVALID_MAJOR_VERSION notify for IKE version > 2 2014-07-17 09:35:49 +02:00
plugins vici: Defer read/write error reporting after connection entry has been released 2015-04-13 15:08:10 +02:00
processing/jobs child-sa: Add a new state to track rekeyed IKEv1 CHILD_SAs 2015-03-25 12:00:20 +01:00
sa aead: Create AEAD using traditional transforms with an explicit IV generator 2015-04-13 15:06:15 +02:00
tests mem-pool: Pass the remote IKE address, to re-acquire() an address during reauth 2015-02-20 13:34:57 +01:00
Android.mk ikev2: Immediately initiate queued tasks after establishing rekeyed IKE_SA 2015-03-18 13:28:34 +01:00
Makefile.am ikev2: Immediately initiate queued tasks after establishing rekeyed IKE_SA 2015-03-18 13:28:34 +01:00
daemon.c daemon: Remove scheduled jobs before unloading plugins 2015-03-09 15:58:06 +01:00
daemon.h attributes: Move the configuration attributes framework to libcharon 2015-02-20 13:34:55 +01:00
debug Moving charon to libcharon. 2010-03-19 13:34:52 +01:00