aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/trap_manager.c
Commit message (Collapse)AuthorAgeFilesLines
* Reuse reqid for trap policies installed for dpd|closeaction=holdTobias Brunner2013-07-011-2/+2
|
* trap-manager: add a method to find reqid for installed traps by configMartin Willi2013-06-191-2/+30
|
* trap-manager: don't check-in nonexisting IKE_SA if acquire failsMartin Willi2013-06-191-2/+1
|
* trap-manager: fix a memleak when installing a trap to %anyMartin Willi2013-06-191-0/+1
|
* Avoid a deadlock when installing a trap policy failedTobias Brunner2013-01-231-1/+5
|
* Moved data structures to new collections subfolderTobias Brunner2012-10-241-1/+1
|
* Update routed connections in trap managerTobias Brunner2012-10-181-37/+39
| | | | | | Before this change, modified configs that have been updated with ipsec reload, could properly be started manually, but the old config would get used if triggered via trap policies.
* Derive a dynamic TS to multiple virtual IPsMartin Willi2012-09-181-5/+9
|
* Don't include acquiring packet traffic selectors in IKEv1Martin Willi2012-07-261-0/+5
| | | | | | | | As we only can negotiate a single TS in IKEv1, don't prepend the triggering packet TS, as we do in IKEv2. Otherwise we don't establish the TS of the configuration, but only that of the triggering packet. Fixes #207.
* implemented the right|leftallowany featureAndreas Steffen2012-06-081-2/+2
|
* Merge branch 'ikev1-clean' into ikev1-masterMartin Willi2012-03-201-17/+20
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.in man/ipsec.conf.5.in src/libcharon/daemon.c src/libcharon/plugins/eap_ttls/eap_ttls_peer.c src/libcharon/plugins/eap_radius/eap_radius_accounting.c src/libcharon/plugins/eap_radius/eap_radius_forward.c src/libcharon/plugins/farp/farp_listener.c src/libcharon/sa/ike_sa.c src/libcharon/sa/keymat.c src/libcharon/sa/task_manager.c src/libcharon/sa/trap_manager.c src/libstrongswan/plugins/x509/x509_cert.c src/libstrongswan/utils.h Applied lost changes of moved files keymat.c and task_manager.c. Updated listener_t.message hook signature in new plugins.
| * Handle initiation of not supported IKE versions properlyMartin Willi2012-03-201-13/+16
| |
* | Fix deadlock in trap_manager_t during acquire.Tobias Brunner2011-12-231-28/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fixes a TOCTOU issue regarding the use of entry_t.pending. The deadlock was caused because the rwlock was being locked while waiting for an IKE_SA. Triggering the deadlock was a bit tricky, here is the description by Thomas Egerer (the reporter of this issue): " The deadlock occurs when the following happens (in the given order): a) an IKE_SA is built and a thread is processing the IKE_AUTH request, which can take a bit longer when a smartcard is involved. This causes the ike_sa_manager to lock a particular IKE_SA exclusively. b) an acquire is triggered which causes the rwlock in the trap_manager to be read-locked, the subsequent call to ike_sa_manager->checkout_by_config has to wait until a) unlocks it's ike_sa. c) a child_cfg contained in the peer_cfg belonging to the ike_sa a) has locked is routed causes the child_configs contained in the peer config to be locked by c) while the actual routing code within trap_manager tries to writelock it's rwlock. That's about it. As soon as a) finishes authentication of the peer and tries to find a matching child sa it will try to lock the child configs of the peer config which is not possible since it has been locked by c). Thread | Resource locked | Resource desired -------+--------------------------------+-------------------------------- (a) | ike_sa in ike_sa_manager | child_cfgs of peer_cfg | | (b) | rwlock in trap-manager (read) | ike_sa in ike_sa_manager | | (c) | child_cfgs of peer_cfg | rwlock in trap-manager (write) " With this patch thread (b) now does not hold the lock while waiting for the IKE_SA. Thus (c) can get the write lock, and (a) can subsequently lock the mutex in the peer_cfg which then finally allows (b) to checkout the IKE_SA.
* | Fixed flush() method of trap_manager_t.Tobias Brunner2011-12-231-3/+9
|/ | | | | A segmentation fault could have happened during destruction of the trap manager after calling flush().
* Clear traps during shutdown before unloading kernel pluginsMartin Willi2011-09-121-0/+7
|
* Initialize trap_manager listener with INIT macro, tooMartin Willi2011-06-281-8/+9
|
* Migrated trap_manager_t to INIT/METHOD macrosAndreas Steffen2011-06-281-45/+32
|
* Refer to kernel interface via hydra and not charon.Tobias Brunner2010-09-021-2/+3
|
* Do not install trap policy if remote host is %any.Tobias Brunner2010-05-281-1/+1
|
* Moving charon to libcharon.Tobias Brunner2010-03-191-0/+403