aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/tnc/tnccs/tnccs.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2011-10-20 14:05:59 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2011-10-20 14:06:12 +0200
commite50c85359764f3a49054ffed0074ee3fbe839ff0 (patch)
tree266a864115fef80b477a0534bba3d57c44bf2c84 /src/libcharon/tnc/tnccs/tnccs.c
parent039a976745172ab2e5df3cf67ef3d635d66dbf72 (diff)
downloadstrongswan-e50c85359764f3a49054ffed0074ee3fbe839ff0.tar.bz2
strongswan-e50c85359764f3a49054ffed0074ee3fbe839ff0.tar.xz
Add features support to tnccs plugins
Diffstat (limited to 'src/libcharon/tnc/tnccs/tnccs.c')
-rw-r--r--src/libcharon/tnc/tnccs/tnccs.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/libcharon/tnc/tnccs/tnccs.c b/src/libcharon/tnc/tnccs/tnccs.c
index 575b850f5..5a6d5a4b8 100644
--- a/src/libcharon/tnc/tnccs/tnccs.c
+++ b/src/libcharon/tnc/tnccs/tnccs.c
@@ -13,11 +13,55 @@
* for more details.
*/
+#define USE_TNC
+
#include "tnccs.h"
+#include <daemon.h>
+
+
ENUM(tnccs_type_names, TNCCS_UNKNOWN, TNCCS_2_0,
"unknown TNCCS",
"TNCCS 1.1",
"TNCCS SOH",
"TNCCS 2.0",
);
+
+/**
+ * See header
+ */
+bool tnccs_method_register(plugin_t *plugin, plugin_feature_t *feature,
+ bool reg, void *data)
+{
+ if (reg)
+ {
+ if (feature->type == FEATURE_CUSTOM)
+ {
+ tnccs_type_t type = TNCCS_UNKNOWN;
+
+ if (streq(feature->arg.custom, "tnccs-2.0"))
+ {
+ type = TNCCS_2_0;
+ }
+ else if (streq(feature->arg.custom, "tnccs-1.1"))
+ {
+ type = TNCCS_1_1;
+ }
+ else if (streq(feature->arg.custom, "tnccs-dynamic"))
+ {
+ type = TNCCS_DYNAMIC;
+ }
+ else
+ {
+ return FALSE;
+ }
+ charon->tnccs->add_method(charon->tnccs, type,
+ (tnccs_constructor_t)data);
+ }
+ }
+ else
+ {
+ charon->tnccs->remove_method(charon->tnccs, (tnccs_constructor_t)data);
+ }
+ return TRUE;
+}