aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2013-08-08 19:43:43 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2013-08-15 23:34:22 +0200
commit12b3db500606bcbd6fd2986463a4b1f37586bdbb (patch)
tree1c88258c3c8230dd65cca43448b6858a14f58af6 /src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c
parent9d8c28e2f5b23e3f1008e8ba064403834683e35a (diff)
downloadstrongswan-12b3db500606bcbd6fd2986463a4b1f37586bdbb.tar.bz2
strongswan-12b3db500606bcbd6fd2986463a4b1f37586bdbb.tar.xz
moved tnc_imv plugin to libtnccs thanks to recommendation callback function
Diffstat (limited to 'src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c')
-rw-r--r--src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c b/src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c
index d4fc6a6f7..bc3112686 100644
--- a/src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c
+++ b/src/libtnccs/plugins/tnccs_dynamic/tnccs_dynamic.c
@@ -56,6 +56,11 @@ struct private_tnccs_dynamic_t {
*/
u_int32_t auth_type;
+ /**
+ * Callback function to communicate recommendation (TNC Server only)
+ */
+ tnccs_cb_t callback;
+
};
/**
@@ -99,7 +104,8 @@ METHOD(tls_t, process, status_t,
DBG1(DBG_TNC, "%N protocol detected dynamically",
tnccs_type_names, type);
tnccs = tnc->tnccs->create_instance(tnc->tnccs, type, TRUE,
- this->server, this->peer, this->transport);
+ this->server, this->peer, this->transport,
+ this->callback);
if (!tnccs)
{
DBG1(DBG_TNC, "N% protocol not supported", tnccs_type_names, type);
@@ -190,9 +196,8 @@ METHOD(tnccs_t, set_auth_type, void,
* See header
*/
tnccs_t* tnccs_dynamic_create(bool is_server,
- identification_t *server,
- identification_t *peer,
- tnc_ift_type_t transport)
+ identification_t *server, identification_t *peer,
+ tnc_ift_type_t transport, tnccs_cb_t cb)
{
private_tnccs_dynamic_t *this;
@@ -217,6 +222,7 @@ tnccs_t* tnccs_dynamic_create(bool is_server,
.server = server->clone(server),
.peer = peer->clone(peer),
.transport = transport,
+ .callback = cb,
);
return &this->public;