aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/sa/authenticators/eap/eap_method.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-09-13 15:55:59 +0200
committerMartin Willi <martin@revosec.ch>2011-10-14 10:05:44 +0200
commit36b4f05b14d5dec89bab9be5ada86dea5b4d07e0 (patch)
tree3e5957bd8eaefb9a1e000bf302f07b0a24fbf076 /src/libcharon/sa/authenticators/eap/eap_method.c
parent62b9e2f9384d973f14098126944b09fa56d61d95 (diff)
downloadstrongswan-36b4f05b14d5dec89bab9be5ada86dea5b4d07e0.tar.bz2
strongswan-36b4f05b14d5dec89bab9be5ada86dea5b4d07e0.tar.xz
Added a generic callback to register EAP methods using plugin features
Diffstat (limited to 'src/libcharon/sa/authenticators/eap/eap_method.c')
-rw-r--r--src/libcharon/sa/authenticators/eap/eap_method.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libcharon/sa/authenticators/eap/eap_method.c b/src/libcharon/sa/authenticators/eap/eap_method.c
index 0fa4a00c5..536dab708 100644
--- a/src/libcharon/sa/authenticators/eap/eap_method.c
+++ b/src/libcharon/sa/authenticators/eap/eap_method.c
@@ -15,8 +15,28 @@
#include "eap_method.h"
+#include <daemon.h>
+
ENUM(eap_role_names, EAP_SERVER, EAP_PEER,
"EAP_SERVER",
"EAP_PEER",
);
+/**
+ * See header
+ */
+bool eap_method_register(plugin_t *plugin, plugin_feature_t *feature,
+ bool reg, void *data)
+{
+ if (reg)
+ {
+ charon->eap->add_method(charon->eap, feature->eap, 0,
+ feature->type == FEATURE_EAP_SERVER ? EAP_SERVER : EAP_PEER,
+ (eap_constructor_t)data);
+ }
+ else
+ {
+ charon->eap->remove_method(charon->eap, (eap_constructor_t)data);
+ }
+ return TRUE;
+}