aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/plugin_feature.h
diff options
context:
space:
mode:
authorClavister OpenSource <opensource@clavister.com>2011-12-01 14:08:24 +0100
committerClavister OpenSource <opensource@clavister.com>2012-03-20 17:31:11 +0100
commit9c5366446a335ca5b53ca3b8813a971ba2b01080 (patch)
treeec0813ef43377f18751dd36f4399b78795b57229 /src/libstrongswan/plugins/plugin_feature.h
parent781f4c88988f23f5a6f155a59076b37164c954c9 (diff)
downloadstrongswan-9c5366446a335ca5b53ca3b8813a971ba2b01080.tar.bz2
strongswan-9c5366446a335ca5b53ca3b8813a971ba2b01080.tar.xz
IKEv1 XAuth: Added plugin support for XAuth, which allows us to have plugins to talk to servers with different quirks for XAuth authentication.
Diffstat (limited to 'src/libstrongswan/plugins/plugin_feature.h')
-rw-r--r--src/libstrongswan/plugins/plugin_feature.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libstrongswan/plugins/plugin_feature.h b/src/libstrongswan/plugins/plugin_feature.h
index b1500feba..89c954471 100644
--- a/src/libstrongswan/plugins/plugin_feature.h
+++ b/src/libstrongswan/plugins/plugin_feature.h
@@ -25,6 +25,7 @@ typedef struct plugin_feature_t plugin_feature_t;
#include <library.h>
#include <eap/eap.h>
+#include <xauth/xauth.h>
#include <plugins/plugin.h>
/**
@@ -135,6 +136,10 @@ struct plugin_feature_t {
FEATURE_FETCHER,
/** custom feature, described with a string */
FEATURE_CUSTOM,
+ /** XAuth server implementation */
+ FEATURE_XAUTH_SERVER,
+ /** XAuth peer implementation */
+ FEATURE_XAUTH_PEER,
} type;
/** More specific data for each type */
union {
@@ -182,6 +187,8 @@ struct plugin_feature_t {
char *fetcher;
/** FEATURE_CUSTOM */
char *custom;
+ /** FEATURE_XAUTH_SERVER/CLIENT */
+ xauth_type_t xauth;
/** FEATURE_REGISTER */
struct {
@@ -266,6 +273,8 @@ struct plugin_feature_t {
#define _PLUGIN_FEATURE_DATABASE(kind, type) __PLUGIN_FEATURE(kind, DATABASE, .database = type)
#define _PLUGIN_FEATURE_FETCHER(kind, type) __PLUGIN_FEATURE(kind, FETCHER, .fetcher = type)
#define _PLUGIN_FEATURE_CUSTOM(kind, name) __PLUGIN_FEATURE(kind, CUSTOM, .custom = name)
+#define _PLUGIN_FEATURE_XAUTH_SERVER(kind, type) __PLUGIN_FEATURE(kind, XAUTH_SERVER, .xauth = type)
+#define _PLUGIN_FEATURE_XAUTH_PEER(kind, type) __PLUGIN_FEATURE(kind, XAUTH_PEER, .xauth = type)
#define __PLUGIN_FEATURE_REGISTER(type, _f) (plugin_feature_t){ FEATURE_REGISTER, FEATURE_##type, .arg.reg.f = _f }
#define __PLUGIN_FEATURE_REGISTER_BUILDER(type, _f, _final) (plugin_feature_t){ FEATURE_REGISTER, FEATURE_##type, .arg.reg = {.f = _f, .final = _final, }}