aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReto Buerki <reet@codelabs.ch>2012-08-31 11:13:39 +0200
committerTobias Brunner <tobias@strongswan.org>2013-03-19 15:23:47 +0100
commitd0ce4116b0380dbfa3890781c6cf2e40f9ac4654 (patch)
tree5f70115eef3e42cdca3b2df363ab3582879942c7
parentc6c8d74026f149d456ab900445f6efbcd7d9d4bb (diff)
downloadstrongswan-d0ce4116b0380dbfa3890781c6cf2e40f9ac4654.tar.bz2
strongswan-d0ce4116b0380dbfa3890781c6cf2e40f9ac4654.tar.xz
Register TKM bus listener in charon-tkm
-rw-r--r--src/charon-tkm/src/charon-tkm.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/charon-tkm/src/charon-tkm.c b/src/charon-tkm/src/charon-tkm.c
index e102b4e0d..f2a58b21e 100644
--- a/src/charon-tkm/src/charon-tkm.c
+++ b/src/charon-tkm/src/charon-tkm.c
@@ -37,6 +37,12 @@
#include "tkm_nonceg.h"
#include "tkm_diffie_hellman.h"
#include "tkm_keymat.h"
+#include "tkm_listener.h"
+
+/**
+ * TKM bus listener for IKE authorize events.
+ */
+static tkm_listener_t *listener;
/**
* PID file, in which charon-tkm stores its process id
@@ -319,6 +325,10 @@ int main(int argc, char *argv[])
goto deinit;
}
+ /* register TKM authorization hook */
+ listener = tkm_listener_create();
+ charon->bus->add_listener(charon->bus, &listener->listener);
+
/* add handler for SEGV and ILL,
* INT and TERM are handled by sigwait() in run() */
action.sa_handler = segv_handler;
@@ -342,6 +352,8 @@ int main(int argc, char *argv[])
unlink_pidfile();
status = 0;
+ charon->bus->remove_listener(charon->bus, &listener->listener);
+ listener->destroy(listener);
deinit:
libcharon_deinit();