diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-10-20 14:05:59 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-10-20 14:06:12 +0200 |
commit | e50c85359764f3a49054ffed0074ee3fbe839ff0 (patch) | |
tree | 266a864115fef80b477a0534bba3d57c44bf2c84 /src/libcharon/tnc/tnccs/tnccs.c | |
parent | 039a976745172ab2e5df3cf67ef3d635d66dbf72 (diff) | |
download | strongswan-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.c | 44 |
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; +} |