renamed tnc_ifmap2 plugin to tnc_ifmap
This commit is contained in:
+5
-5
@@ -168,7 +168,7 @@ ARG_DISBL_SET([xauth-generic], [disable generic XAuth backend.])
|
|||||||
ARG_ENABL_SET([xauth-eap], [enable XAuth backend using EAP methods to verify passwords.])
|
ARG_ENABL_SET([xauth-eap], [enable XAuth backend using EAP methods to verify passwords.])
|
||||||
ARG_ENABL_SET([xauth-pam], [enable XAuth backend using PAM to verify passwords.])
|
ARG_ENABL_SET([xauth-pam], [enable XAuth backend using PAM to verify passwords.])
|
||||||
ARG_ENABL_SET([xauth-noauth], [enable XAuth pseudo-backend that does not actually verify or even request any credentials.])
|
ARG_ENABL_SET([xauth-noauth], [enable XAuth pseudo-backend that does not actually verify or even request any credentials.])
|
||||||
ARG_ENABL_SET([tnc-ifmap2], [enable TNC IF-MAP v2 module. Requires libxml])
|
ARG_ENABL_SET([tnc-ifmap], [enable TNC IF-MAP module. Requires libxml])
|
||||||
ARG_ENABL_SET([tnc-pdp], [enable TNC policy decision point module.])
|
ARG_ENABL_SET([tnc-pdp], [enable TNC policy decision point module.])
|
||||||
ARG_ENABL_SET([tnc-imc], [enable TNC IMC module.])
|
ARG_ENABL_SET([tnc-imc], [enable TNC IMC module.])
|
||||||
ARG_ENABL_SET([tnc-imv], [enable TNC IMV module.])
|
ARG_ENABL_SET([tnc-imv], [enable TNC IMV module.])
|
||||||
@@ -338,7 +338,7 @@ if test x$fips_prf = xtrue; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$smp = xtrue -o x$tnccs_11 = xtrue -o x$tnc_ifmap2 = xtrue; then
|
if test x$smp = xtrue -o x$tnccs_11 = xtrue -o x$tnc_ifmap = xtrue; then
|
||||||
xml=true
|
xml=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1006,7 +1006,7 @@ ADD_PLUGIN([xauth-generic], [c charon])
|
|||||||
ADD_PLUGIN([xauth-eap], [c charon])
|
ADD_PLUGIN([xauth-eap], [c charon])
|
||||||
ADD_PLUGIN([xauth-pam], [c charon])
|
ADD_PLUGIN([xauth-pam], [c charon])
|
||||||
ADD_PLUGIN([xauth-noauth], [c charon])
|
ADD_PLUGIN([xauth-noauth], [c charon])
|
||||||
ADD_PLUGIN([tnc-ifmap2], [c charon])
|
ADD_PLUGIN([tnc-ifmap], [c charon])
|
||||||
ADD_PLUGIN([tnc-pdp], [c charon])
|
ADD_PLUGIN([tnc-pdp], [c charon])
|
||||||
ADD_PLUGIN([tnc-imc], [c charon])
|
ADD_PLUGIN([tnc-imc], [c charon])
|
||||||
ADD_PLUGIN([tnc-imv], [c charon])
|
ADD_PLUGIN([tnc-imv], [c charon])
|
||||||
@@ -1147,7 +1147,7 @@ AM_CONDITIONAL(USE_XAUTH_GENERIC, test x$xauth_generic = xtrue)
|
|||||||
AM_CONDITIONAL(USE_XAUTH_EAP, test x$xauth_eap = xtrue)
|
AM_CONDITIONAL(USE_XAUTH_EAP, test x$xauth_eap = xtrue)
|
||||||
AM_CONDITIONAL(USE_XAUTH_PAM, test x$xauth_pam = xtrue)
|
AM_CONDITIONAL(USE_XAUTH_PAM, test x$xauth_pam = xtrue)
|
||||||
AM_CONDITIONAL(USE_XAUTH_NOAUTH, test x$xauth_noauth = xtrue)
|
AM_CONDITIONAL(USE_XAUTH_NOAUTH, test x$xauth_noauth = xtrue)
|
||||||
AM_CONDITIONAL(USE_TNC_IFMAP2, test x$tnc_ifmap2 = xtrue)
|
AM_CONDITIONAL(USE_TNC_IFMAP, test x$tnc_ifmap = xtrue)
|
||||||
AM_CONDITIONAL(USE_TNC_PDP, test x$tnc_pdp = xtrue)
|
AM_CONDITIONAL(USE_TNC_PDP, test x$tnc_pdp = xtrue)
|
||||||
AM_CONDITIONAL(USE_TNC_IMC, test x$tnc_imc = xtrue)
|
AM_CONDITIONAL(USE_TNC_IMC, test x$tnc_imc = xtrue)
|
||||||
AM_CONDITIONAL(USE_TNC_IMV, test x$tnc_imv = xtrue)
|
AM_CONDITIONAL(USE_TNC_IMV, test x$tnc_imv = xtrue)
|
||||||
@@ -1343,7 +1343,7 @@ AC_CONFIG_FILES([
|
|||||||
src/libcharon/plugins/xauth_eap/Makefile
|
src/libcharon/plugins/xauth_eap/Makefile
|
||||||
src/libcharon/plugins/xauth_pam/Makefile
|
src/libcharon/plugins/xauth_pam/Makefile
|
||||||
src/libcharon/plugins/xauth_noauth/Makefile
|
src/libcharon/plugins/xauth_noauth/Makefile
|
||||||
src/libcharon/plugins/tnc_ifmap2/Makefile
|
src/libcharon/plugins/tnc_ifmap/Makefile
|
||||||
src/libcharon/plugins/tnc_pdp/Makefile
|
src/libcharon/plugins/tnc_pdp/Makefile
|
||||||
src/libcharon/plugins/tnc_imc/Makefile
|
src/libcharon/plugins/tnc_imc/Makefile
|
||||||
src/libcharon/plugins/tnc_imv/Makefile
|
src/libcharon/plugins/tnc_imv/Makefile
|
||||||
|
|||||||
@@ -373,10 +373,10 @@ if MONOLITHIC
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if USE_TNC_IFMAP2
|
if USE_TNC_IFMAP
|
||||||
SUBDIRS += plugins/tnc_ifmap2
|
SUBDIRS += plugins/tnc_ifmap
|
||||||
if MONOLITHIC
|
if MONOLITHIC
|
||||||
libcharon_la_LIBADD += plugins/tnc_ifmap2/libstrongswan-tnc-ifmap2.la
|
libcharon_la_LIBADD += plugins/tnc_ifmap/libstrongswan-tnc-ifmap.la
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
INCLUDES = \
|
||||||
|
-I$(top_srcdir)/src/libstrongswan \
|
||||||
|
-I$(top_srcdir)/src/libtls \
|
||||||
|
-I$(top_srcdir)/src/libhydra \
|
||||||
|
-I$(top_srcdir)/src/libcharon \
|
||||||
|
${xml_CFLAGS}
|
||||||
|
|
||||||
|
AM_CFLAGS = -rdynamic
|
||||||
|
|
||||||
|
if MONOLITHIC
|
||||||
|
noinst_LTLIBRARIES = libstrongswan-tnc-ifmap.la
|
||||||
|
else
|
||||||
|
plugin_LTLIBRARIES = libstrongswan-tnc-ifmap.la
|
||||||
|
endif
|
||||||
|
|
||||||
|
libstrongswan_tnc_ifmap_la_LIBADD = \
|
||||||
|
$(top_builddir)/src/libtls/libtls.la ${xml_LIBS}
|
||||||
|
|
||||||
|
libstrongswan_tnc_ifmap_la_SOURCES = \
|
||||||
|
tnc_ifmap_plugin.h tnc_ifmap_plugin.c \
|
||||||
|
tnc_ifmap_listener.h tnc_ifmap_listener.c \
|
||||||
|
tnc_ifmap_soap.h tnc_ifmap_soap.c \
|
||||||
|
tnc_ifmap_soap_msg.h tnc_ifmap_soap_msg.c
|
||||||
|
|
||||||
|
libstrongswan_tnc_ifmap_la_LDFLAGS = -module -avoid-version
|
||||||
|
|
||||||
+17
-17
@@ -13,36 +13,36 @@
|
|||||||
* for more details.
|
* for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tnc_ifmap2_listener.h"
|
#include "tnc_ifmap_listener.h"
|
||||||
#include "tnc_ifmap2_soap.h"
|
#include "tnc_ifmap_soap.h"
|
||||||
|
|
||||||
#include <daemon.h>
|
#include <daemon.h>
|
||||||
#include <hydra.h>
|
#include <hydra.h>
|
||||||
#include <utils/debug.h>
|
#include <utils/debug.h>
|
||||||
|
|
||||||
typedef struct private_tnc_ifmap2_listener_t private_tnc_ifmap2_listener_t;
|
typedef struct private_tnc_ifmap_listener_t private_tnc_ifmap_listener_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private data of an tnc_ifmap2_listener_t object.
|
* Private data of an tnc_ifmap_listener_t object.
|
||||||
*/
|
*/
|
||||||
struct private_tnc_ifmap2_listener_t {
|
struct private_tnc_ifmap_listener_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public tnc_ifmap2_listener_t interface.
|
* Public tnc_ifmap_listener_t interface.
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_listener_t public;
|
tnc_ifmap_listener_t public;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TNC IF-MAP 2.0 SOAP interface
|
* TNC IF-MAP 2.0 SOAP interface
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_t *ifmap;
|
tnc_ifmap_soap_t *ifmap;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish PEP device-ip metadata
|
* Publish PEP device-ip metadata
|
||||||
*/
|
*/
|
||||||
static bool publish_device_ip_addresses(private_tnc_ifmap2_listener_t *this)
|
static bool publish_device_ip_addresses(private_tnc_ifmap_listener_t *this)
|
||||||
{
|
{
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
host_t *host;
|
host_t *host;
|
||||||
@@ -66,7 +66,7 @@ static bool publish_device_ip_addresses(private_tnc_ifmap2_listener_t *this)
|
|||||||
/**
|
/**
|
||||||
* Publish all IKE_SA metadata
|
* Publish all IKE_SA metadata
|
||||||
*/
|
*/
|
||||||
static bool reload_metadata(private_tnc_ifmap2_listener_t *this)
|
static bool reload_metadata(private_tnc_ifmap_listener_t *this)
|
||||||
{
|
{
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
ike_sa_t *ike_sa;
|
ike_sa_t *ike_sa;
|
||||||
@@ -92,7 +92,7 @@ static bool reload_metadata(private_tnc_ifmap2_listener_t *this)
|
|||||||
}
|
}
|
||||||
|
|
||||||
METHOD(listener_t, ike_updown, bool,
|
METHOD(listener_t, ike_updown, bool,
|
||||||
private_tnc_ifmap2_listener_t *this, ike_sa_t *ike_sa, bool up)
|
private_tnc_ifmap_listener_t *this, ike_sa_t *ike_sa, bool up)
|
||||||
{
|
{
|
||||||
if (ike_sa->get_state(ike_sa) != IKE_CONNECTING)
|
if (ike_sa->get_state(ike_sa) != IKE_CONNECTING)
|
||||||
{
|
{
|
||||||
@@ -102,7 +102,7 @@ METHOD(listener_t, ike_updown, bool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
METHOD(listener_t, alert, bool,
|
METHOD(listener_t, alert, bool,
|
||||||
private_tnc_ifmap2_listener_t *this, ike_sa_t *ike_sa, alert_t alert,
|
private_tnc_ifmap_listener_t *this, ike_sa_t *ike_sa, alert_t alert,
|
||||||
va_list args)
|
va_list args)
|
||||||
{
|
{
|
||||||
if (alert == ALERT_PEER_AUTH_FAILED)
|
if (alert == ALERT_PEER_AUTH_FAILED)
|
||||||
@@ -114,8 +114,8 @@ METHOD(listener_t, alert, bool,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_listener_t, destroy, void,
|
METHOD(tnc_ifmap_listener_t, destroy, void,
|
||||||
private_tnc_ifmap2_listener_t *this)
|
private_tnc_ifmap_listener_t *this)
|
||||||
{
|
{
|
||||||
DESTROY_IF(this->ifmap);
|
DESTROY_IF(this->ifmap);
|
||||||
free(this);
|
free(this);
|
||||||
@@ -124,9 +124,9 @@ METHOD(tnc_ifmap2_listener_t, destroy, void,
|
|||||||
/**
|
/**
|
||||||
* See header
|
* See header
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_listener_t *tnc_ifmap2_listener_create(bool reload)
|
tnc_ifmap_listener_t *tnc_ifmap_listener_create(bool reload)
|
||||||
{
|
{
|
||||||
private_tnc_ifmap2_listener_t *this;
|
private_tnc_ifmap_listener_t *this;
|
||||||
|
|
||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
@@ -136,7 +136,7 @@ tnc_ifmap2_listener_t *tnc_ifmap2_listener_create(bool reload)
|
|||||||
},
|
},
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
},
|
},
|
||||||
.ifmap = tnc_ifmap2_soap_create(),
|
.ifmap = tnc_ifmap_soap_create(),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!this->ifmap)
|
if (!this->ifmap)
|
||||||
+11
-11
@@ -14,21 +14,21 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup tnc_ifmap2_listener tnc_ifmap2_listener
|
* @defgroup tnc_ifmap_listener tnc_ifmap_listener
|
||||||
* @{ @ingroup tnc_ifmap2
|
* @{ @ingroup tnc_ifmap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TNC_IFMAP2_LISTENER_H_
|
#ifndef TNC_IFMAP_LISTENER_H_
|
||||||
#define TNC_IFMAP2_LISTENER_H_
|
#define TNC_IFMAP_LISTENER_H_
|
||||||
|
|
||||||
#include <bus/bus.h>
|
#include <bus/bus.h>
|
||||||
|
|
||||||
typedef struct tnc_ifmap2_listener_t tnc_ifmap2_listener_t;
|
typedef struct tnc_ifmap_listener_t tnc_ifmap_listener_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listener which collects information on IKE_SAs
|
* Listener which collects information on IKE_SAs
|
||||||
*/
|
*/
|
||||||
struct tnc_ifmap2_listener_t {
|
struct tnc_ifmap_listener_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements listener_t.
|
* Implements listener_t.
|
||||||
@@ -36,16 +36,16 @@ struct tnc_ifmap2_listener_t {
|
|||||||
listener_t listener;
|
listener_t listener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy a tnc_ifmap2_listener_t.
|
* Destroy a tnc_ifmap_listener_t.
|
||||||
*/
|
*/
|
||||||
void (*destroy)(tnc_ifmap2_listener_t *this);
|
void (*destroy)(tnc_ifmap_listener_t *this);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a tnc_ifmap2_listener instance.
|
* Create a tnc_ifmap_listener instance.
|
||||||
*
|
*
|
||||||
* @param reload reload all IKE_SA metadata
|
* @param reload reload all IKE_SA metadata
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_listener_t *tnc_ifmap2_listener_create(bool reload);
|
tnc_ifmap_listener_t *tnc_ifmap_listener_create(bool reload);
|
||||||
|
|
||||||
#endif /** TNC_IFMAP2_LISTENER_H_ @}*/
|
#endif /** TNC_IFMAP_LISTENER_H_ @}*/
|
||||||
+19
-19
@@ -13,44 +13,44 @@
|
|||||||
* for more details.
|
* for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tnc_ifmap2_plugin.h"
|
#include "tnc_ifmap_plugin.h"
|
||||||
#include "tnc_ifmap2_listener.h"
|
#include "tnc_ifmap_listener.h"
|
||||||
|
|
||||||
#include <daemon.h>
|
#include <daemon.h>
|
||||||
|
|
||||||
typedef struct private_tnc_ifmap2_plugin_t private_tnc_ifmap2_plugin_t;
|
typedef struct private_tnc_ifmap_plugin_t private_tnc_ifmap_plugin_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* private data of tnc_ifmap2 plugin
|
* private data of tnc_ifmap plugin
|
||||||
*/
|
*/
|
||||||
struct private_tnc_ifmap2_plugin_t {
|
struct private_tnc_ifmap_plugin_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* implements plugin interface
|
* implements plugin interface
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_plugin_t public;
|
tnc_ifmap_plugin_t public;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listener interface, listens to CHILD_SA state changes
|
* Listener interface, listens to CHILD_SA state changes
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_listener_t *listener;
|
tnc_ifmap_listener_t *listener;
|
||||||
};
|
};
|
||||||
|
|
||||||
METHOD(plugin_t, get_name, char*,
|
METHOD(plugin_t, get_name, char*,
|
||||||
private_tnc_ifmap2_plugin_t *this)
|
private_tnc_ifmap_plugin_t *this)
|
||||||
{
|
{
|
||||||
return "tnc-ifmap2";
|
return "tnc-ifmap";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register tnc_ifmap2 plugin features
|
* Register tnc_ifmap plugin features
|
||||||
*/
|
*/
|
||||||
static bool register_tnc_ifmap2(private_tnc_ifmap2_plugin_t *this,
|
static bool register_tnc_ifmap(private_tnc_ifmap_plugin_t *this,
|
||||||
plugin_feature_t *feature, bool reg, void *data)
|
plugin_feature_t *feature, bool reg, void *data)
|
||||||
{
|
{
|
||||||
if (reg)
|
if (reg)
|
||||||
{
|
{
|
||||||
this->listener = tnc_ifmap2_listener_create(FALSE);
|
this->listener = tnc_ifmap_listener_create(FALSE);
|
||||||
if (!this->listener)
|
if (!this->listener)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -69,10 +69,10 @@ static bool register_tnc_ifmap2(private_tnc_ifmap2_plugin_t *this,
|
|||||||
}
|
}
|
||||||
|
|
||||||
METHOD(plugin_t, get_features, int,
|
METHOD(plugin_t, get_features, int,
|
||||||
tnc_ifmap2_plugin_t *this, plugin_feature_t *features[])
|
tnc_ifmap_plugin_t *this, plugin_feature_t *features[])
|
||||||
{
|
{
|
||||||
static plugin_feature_t f[] = {
|
static plugin_feature_t f[] = {
|
||||||
PLUGIN_CALLBACK((plugin_feature_callback_t)register_tnc_ifmap2, NULL),
|
PLUGIN_CALLBACK((plugin_feature_callback_t)register_tnc_ifmap, NULL),
|
||||||
PLUGIN_PROVIDE(CUSTOM, "tnc-ifmap-2.1"),
|
PLUGIN_PROVIDE(CUSTOM, "tnc-ifmap-2.1"),
|
||||||
PLUGIN_SDEPEND(CERT_DECODE, CERT_X509),
|
PLUGIN_SDEPEND(CERT_DECODE, CERT_X509),
|
||||||
PLUGIN_SDEPEND(PRIVKEY, KEY_RSA),
|
PLUGIN_SDEPEND(PRIVKEY, KEY_RSA),
|
||||||
@@ -82,7 +82,7 @@ METHOD(plugin_t, get_features, int,
|
|||||||
}
|
}
|
||||||
|
|
||||||
METHOD(plugin_t, reload, bool,
|
METHOD(plugin_t, reload, bool,
|
||||||
private_tnc_ifmap2_plugin_t *this)
|
private_tnc_ifmap_plugin_t *this)
|
||||||
{
|
{
|
||||||
if (this->listener)
|
if (this->listener)
|
||||||
{
|
{
|
||||||
@@ -90,7 +90,7 @@ METHOD(plugin_t, reload, bool,
|
|||||||
this->listener->destroy(this->listener);
|
this->listener->destroy(this->listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->listener = tnc_ifmap2_listener_create(TRUE);
|
this->listener = tnc_ifmap_listener_create(TRUE);
|
||||||
if (!this->listener)
|
if (!this->listener)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -101,7 +101,7 @@ METHOD(plugin_t, reload, bool,
|
|||||||
}
|
}
|
||||||
|
|
||||||
METHOD(plugin_t, destroy, void,
|
METHOD(plugin_t, destroy, void,
|
||||||
private_tnc_ifmap2_plugin_t *this)
|
private_tnc_ifmap_plugin_t *this)
|
||||||
{
|
{
|
||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
@@ -109,9 +109,9 @@ METHOD(plugin_t, destroy, void,
|
|||||||
/*
|
/*
|
||||||
* see header file
|
* see header file
|
||||||
*/
|
*/
|
||||||
plugin_t *tnc_ifmap2_plugin_create()
|
plugin_t *tnc_ifmap_plugin_create()
|
||||||
{
|
{
|
||||||
private_tnc_ifmap2_plugin_t *this;
|
private_tnc_ifmap_plugin_t *this;
|
||||||
|
|
||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
+8
-8
@@ -14,24 +14,24 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup tnc_ifmap2 tnc_ifmap2
|
* @defgroup tnc_ifmap tnc_ifmap
|
||||||
* @ingroup cplugins
|
* @ingroup cplugins
|
||||||
*
|
*
|
||||||
* @defgroup tnc_ifmap2_plugin tnc_ifmap2_plugin
|
* @defgroup tnc_ifmap_plugin tnc_ifmap_plugin
|
||||||
* @{ @ingroup tnc_ifmap2
|
* @{ @ingroup tnc_ifmap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TNC_IFMAP2_PLUGIN_H_
|
#ifndef TNC_IFMAP_PLUGIN_H_
|
||||||
#define TNC_IFMAP2_PLUGIN_H_
|
#define TNC_IFMAP_PLUGIN_H_
|
||||||
|
|
||||||
#include <plugins/plugin.h>
|
#include <plugins/plugin.h>
|
||||||
|
|
||||||
typedef struct tnc_ifmap2_plugin_t tnc_ifmap2_plugin_t;
|
typedef struct tnc_ifmap_plugin_t tnc_ifmap_plugin_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TNC IF-MAP plugin
|
* TNC IF-MAP plugin
|
||||||
*/
|
*/
|
||||||
struct tnc_ifmap2_plugin_t {
|
struct tnc_ifmap_plugin_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* implements plugin interface
|
* implements plugin interface
|
||||||
@@ -39,4 +39,4 @@ struct tnc_ifmap2_plugin_t {
|
|||||||
plugin_t plugin;
|
plugin_t plugin;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /** TNC_IFMAP2_PLUGIN_H_ @}*/
|
#endif /** TNC_IFMAP_PLUGIN_H_ @}*/
|
||||||
+51
-51
@@ -13,8 +13,8 @@
|
|||||||
* for more details.
|
* for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tnc_ifmap2_soap.h"
|
#include "tnc_ifmap_soap.h"
|
||||||
#include "tnc_ifmap2_soap_msg.h"
|
#include "tnc_ifmap_soap_msg.h"
|
||||||
|
|
||||||
#include <utils/debug.h>
|
#include <utils/debug.h>
|
||||||
#include <credentials/sets/mem_cred.h>
|
#include <credentials/sets/mem_cred.h>
|
||||||
@@ -32,17 +32,17 @@
|
|||||||
#define IFMAP_URI "https://localhost:8444/imap"
|
#define IFMAP_URI "https://localhost:8444/imap"
|
||||||
#define IFMAP_NO_FD -1
|
#define IFMAP_NO_FD -1
|
||||||
|
|
||||||
typedef struct private_tnc_ifmap2_soap_t private_tnc_ifmap2_soap_t;
|
typedef struct private_tnc_ifmap_soap_t private_tnc_ifmap_soap_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private data of an tnc_ifmap2_soap_t object.
|
* Private data of an tnc_ifmap_soap_t object.
|
||||||
*/
|
*/
|
||||||
struct private_tnc_ifmap2_soap_t {
|
struct private_tnc_ifmap_soap_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public tnc_ifmap2_soap_t interface.
|
* Public tnc_ifmap_soap_t interface.
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_t public;
|
tnc_ifmap_soap_t public;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SOAP Session ID
|
* SOAP Session ID
|
||||||
@@ -101,10 +101,10 @@ struct private_tnc_ifmap2_soap_t {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, newSession, bool,
|
METHOD(tnc_ifmap_soap_t, newSession, bool,
|
||||||
private_tnc_ifmap2_soap_t *this)
|
private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
tnc_ifmap2_soap_msg_t *soap_msg;
|
tnc_ifmap_soap_msg_t *soap_msg;
|
||||||
xmlNodePtr request, result;
|
xmlNodePtr request, result;
|
||||||
|
|
||||||
/*build newSession request */
|
/*build newSession request */
|
||||||
@@ -112,7 +112,7 @@ METHOD(tnc_ifmap2_soap_t, newSession, bool,
|
|||||||
this->ns = xmlNewNs(request, IFMAP_NS, "ifmap");
|
this->ns = xmlNewNs(request, IFMAP_NS, "ifmap");
|
||||||
xmlSetNs(request, this->ns);
|
xmlSetNs(request, this->ns);
|
||||||
|
|
||||||
soap_msg = tnc_ifmap2_soap_msg_create(this->uri, this->user_pass, this->tls);
|
soap_msg = tnc_ifmap_soap_msg_create(this->uri, this->user_pass, this->tls);
|
||||||
if (!soap_msg->post(soap_msg, request, "newSessionResult", &result))
|
if (!soap_msg->post(soap_msg, request, "newSessionResult", &result))
|
||||||
{
|
{
|
||||||
soap_msg->destroy(soap_msg);
|
soap_msg->destroy(soap_msg);
|
||||||
@@ -129,17 +129,17 @@ METHOD(tnc_ifmap2_soap_t, newSession, bool,
|
|||||||
|
|
||||||
/* set PEP and PDP device name (defaults to IF-MAP Publisher ID) */
|
/* set PEP and PDP device name (defaults to IF-MAP Publisher ID) */
|
||||||
this->device_name = lib->settings->get_str(lib->settings,
|
this->device_name = lib->settings->get_str(lib->settings,
|
||||||
"%s.plugins.tnc-ifmap2.device_name",
|
"%s.plugins.tnc-ifmap.device_name",
|
||||||
this->ifmap_publisher_id, charon->name);
|
this->ifmap_publisher_id, charon->name);
|
||||||
this->device_name = strdup(this->device_name);
|
this->device_name = strdup(this->device_name);
|
||||||
|
|
||||||
return this->session_id && this->ifmap_publisher_id;
|
return this->session_id && this->ifmap_publisher_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, purgePublisher, bool,
|
METHOD(tnc_ifmap_soap_t, purgePublisher, bool,
|
||||||
private_tnc_ifmap2_soap_t *this)
|
private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
tnc_ifmap2_soap_msg_t *soap_msg;
|
tnc_ifmap_soap_msg_t *soap_msg;
|
||||||
xmlNodePtr request;
|
xmlNodePtr request;
|
||||||
bool success;
|
bool success;
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ METHOD(tnc_ifmap2_soap_t, purgePublisher, bool,
|
|||||||
xmlNewProp(request, "session-id", this->session_id);
|
xmlNewProp(request, "session-id", this->session_id);
|
||||||
xmlNewProp(request, "ifmap-publisher-id", this->ifmap_publisher_id);
|
xmlNewProp(request, "ifmap-publisher-id", this->ifmap_publisher_id);
|
||||||
|
|
||||||
soap_msg = tnc_ifmap2_soap_msg_create(this->uri, this->user_pass, this->tls);
|
soap_msg = tnc_ifmap_soap_msg_create(this->uri, this->user_pass, this->tls);
|
||||||
success = soap_msg->post(soap_msg, request, "purgePublisherReceived", NULL);
|
success = soap_msg->post(soap_msg, request, "purgePublisherReceived", NULL);
|
||||||
soap_msg->destroy(soap_msg);
|
soap_msg->destroy(soap_msg);
|
||||||
|
|
||||||
@@ -160,7 +160,7 @@ METHOD(tnc_ifmap2_soap_t, purgePublisher, bool,
|
|||||||
/**
|
/**
|
||||||
* Create an access-request based on device_name and ike_sa_id
|
* Create an access-request based on device_name and ike_sa_id
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_access_request(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_access_request(private_tnc_ifmap_soap_t *this,
|
||||||
u_int32_t id)
|
u_int32_t id)
|
||||||
{
|
{
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
@@ -177,7 +177,7 @@ static xmlNodePtr create_access_request(private_tnc_ifmap2_soap_t *this,
|
|||||||
/**
|
/**
|
||||||
* Create an identity
|
* Create an identity
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_identity(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_identity(private_tnc_ifmap_soap_t *this,
|
||||||
identification_t *id, bool is_user)
|
identification_t *id, bool is_user)
|
||||||
{
|
{
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
@@ -223,7 +223,7 @@ static xmlNodePtr create_identity(private_tnc_ifmap2_soap_t *this,
|
|||||||
/**
|
/**
|
||||||
* Create enforcement-report metadata
|
* Create enforcement-report metadata
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_enforcement_report(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_enforcement_report(private_tnc_ifmap_soap_t *this,
|
||||||
xmlChar *action, xmlChar *reason)
|
xmlChar *action, xmlChar *reason)
|
||||||
{
|
{
|
||||||
xmlNodePtr node, node2, node3;
|
xmlNodePtr node, node2, node3;
|
||||||
@@ -247,7 +247,7 @@ static xmlNodePtr create_enforcement_report(private_tnc_ifmap2_soap_t *this,
|
|||||||
/**
|
/**
|
||||||
* Create delete filter
|
* Create delete filter
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_delete_filter(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_delete_filter(private_tnc_ifmap_soap_t *this,
|
||||||
char *metadata)
|
char *metadata)
|
||||||
{
|
{
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
@@ -265,7 +265,7 @@ static xmlNodePtr create_delete_filter(private_tnc_ifmap2_soap_t *this,
|
|||||||
/**
|
/**
|
||||||
* Create a publish request
|
* Create a publish request
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_publish_request(private_tnc_ifmap2_soap_t *this)
|
static xmlNodePtr create_publish_request(private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
xmlNodePtr request;
|
xmlNodePtr request;
|
||||||
|
|
||||||
@@ -281,7 +281,7 @@ static xmlNodePtr create_publish_request(private_tnc_ifmap2_soap_t *this)
|
|||||||
/**
|
/**
|
||||||
* Create a device
|
* Create a device
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_device(private_tnc_ifmap2_soap_t *this)
|
static xmlNodePtr create_device(private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
xmlNodePtr node, node2;
|
xmlNodePtr node, node2;
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ static xmlNodePtr create_device(private_tnc_ifmap2_soap_t *this)
|
|||||||
/**
|
/**
|
||||||
* Create an ip-address
|
* Create an ip-address
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_ip_address(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_ip_address(private_tnc_ifmap_soap_t *this,
|
||||||
host_t *host)
|
host_t *host)
|
||||||
{
|
{
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
@@ -343,7 +343,7 @@ static xmlNodePtr create_ip_address(private_tnc_ifmap2_soap_t *this,
|
|||||||
/**
|
/**
|
||||||
* Create metadata
|
* Create metadata
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_metadata(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_metadata(private_tnc_ifmap_soap_t *this,
|
||||||
xmlChar *metadata)
|
xmlChar *metadata)
|
||||||
{
|
{
|
||||||
xmlNodePtr node, node2;
|
xmlNodePtr node, node2;
|
||||||
@@ -359,7 +359,7 @@ static xmlNodePtr create_metadata(private_tnc_ifmap2_soap_t *this,
|
|||||||
/**
|
/**
|
||||||
* Create capability metadata
|
* Create capability metadata
|
||||||
*/
|
*/
|
||||||
static xmlNodePtr create_capability(private_tnc_ifmap2_soap_t *this,
|
static xmlNodePtr create_capability(private_tnc_ifmap_soap_t *this,
|
||||||
identification_t *name)
|
identification_t *name)
|
||||||
{
|
{
|
||||||
xmlNodePtr node, node2;
|
xmlNodePtr node, node2;
|
||||||
@@ -379,10 +379,10 @@ static xmlNodePtr create_capability(private_tnc_ifmap2_soap_t *this,
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, publish_ike_sa, bool,
|
METHOD(tnc_ifmap_soap_t, publish_ike_sa, bool,
|
||||||
private_tnc_ifmap2_soap_t *this, ike_sa_t *ike_sa, bool up)
|
private_tnc_ifmap_soap_t *this, ike_sa_t *ike_sa, bool up)
|
||||||
{
|
{
|
||||||
tnc_ifmap2_soap_msg_t *soap_msg;
|
tnc_ifmap_soap_msg_t *soap_msg;
|
||||||
xmlNodePtr request, node, node2 = NULL;
|
xmlNodePtr request, node, node2 = NULL;
|
||||||
enumerator_t *e1, *e2;
|
enumerator_t *e1, *e2;
|
||||||
auth_rule_t type;
|
auth_rule_t type;
|
||||||
@@ -522,17 +522,17 @@ METHOD(tnc_ifmap2_soap_t, publish_ike_sa, bool,
|
|||||||
}
|
}
|
||||||
e1->destroy(e1);
|
e1->destroy(e1);
|
||||||
|
|
||||||
soap_msg = tnc_ifmap2_soap_msg_create(this->uri, this->user_pass, this->tls);
|
soap_msg = tnc_ifmap_soap_msg_create(this->uri, this->user_pass, this->tls);
|
||||||
success = soap_msg->post(soap_msg, request, "publishReceived", NULL);
|
success = soap_msg->post(soap_msg, request, "publishReceived", NULL);
|
||||||
soap_msg->destroy(soap_msg);
|
soap_msg->destroy(soap_msg);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, publish_device_ip, bool,
|
METHOD(tnc_ifmap_soap_t, publish_device_ip, bool,
|
||||||
private_tnc_ifmap2_soap_t *this, host_t *host)
|
private_tnc_ifmap_soap_t *this, host_t *host)
|
||||||
{
|
{
|
||||||
tnc_ifmap2_soap_msg_t *soap_msg;
|
tnc_ifmap_soap_msg_t *soap_msg;
|
||||||
xmlNodePtr request, update;
|
xmlNodePtr request, update;
|
||||||
bool success;
|
bool success;
|
||||||
|
|
||||||
@@ -546,17 +546,17 @@ METHOD(tnc_ifmap2_soap_t, publish_device_ip, bool,
|
|||||||
xmlAddChild(update, create_ip_address(this, host));
|
xmlAddChild(update, create_ip_address(this, host));
|
||||||
xmlAddChild(update, create_metadata(this, "device-ip"));
|
xmlAddChild(update, create_metadata(this, "device-ip"));
|
||||||
|
|
||||||
soap_msg = tnc_ifmap2_soap_msg_create(this->uri, this->user_pass, this->tls);
|
soap_msg = tnc_ifmap_soap_msg_create(this->uri, this->user_pass, this->tls);
|
||||||
success = soap_msg->post(soap_msg, request, "publishReceived", NULL);
|
success = soap_msg->post(soap_msg, request, "publishReceived", NULL);
|
||||||
soap_msg->destroy(soap_msg);
|
soap_msg->destroy(soap_msg);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, publish_enforcement_report, bool,
|
METHOD(tnc_ifmap_soap_t, publish_enforcement_report, bool,
|
||||||
private_tnc_ifmap2_soap_t *this, host_t *host, char *action, char *reason)
|
private_tnc_ifmap_soap_t *this, host_t *host, char *action, char *reason)
|
||||||
{
|
{
|
||||||
tnc_ifmap2_soap_msg_t *soap_msg;
|
tnc_ifmap_soap_msg_t *soap_msg;
|
||||||
xmlNodePtr request, update;
|
xmlNodePtr request, update;
|
||||||
bool success;
|
bool success;
|
||||||
|
|
||||||
@@ -570,17 +570,17 @@ METHOD(tnc_ifmap2_soap_t, publish_enforcement_report, bool,
|
|||||||
xmlAddChild(update, create_device(this));
|
xmlAddChild(update, create_device(this));
|
||||||
xmlAddChild(update, create_enforcement_report(this, action, reason));
|
xmlAddChild(update, create_enforcement_report(this, action, reason));
|
||||||
|
|
||||||
soap_msg = tnc_ifmap2_soap_msg_create(this->uri, this->user_pass, this->tls);
|
soap_msg = tnc_ifmap_soap_msg_create(this->uri, this->user_pass, this->tls);
|
||||||
success = soap_msg->post(soap_msg, request, "publishReceived", NULL);
|
success = soap_msg->post(soap_msg, request, "publishReceived", NULL);
|
||||||
soap_msg->destroy(soap_msg);
|
soap_msg->destroy(soap_msg);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, endSession, bool,
|
METHOD(tnc_ifmap_soap_t, endSession, bool,
|
||||||
private_tnc_ifmap2_soap_t *this)
|
private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
tnc_ifmap2_soap_msg_t *soap_msg;
|
tnc_ifmap_soap_msg_t *soap_msg;
|
||||||
xmlNodePtr request;
|
xmlNodePtr request;
|
||||||
bool success;
|
bool success;
|
||||||
|
|
||||||
@@ -590,15 +590,15 @@ METHOD(tnc_ifmap2_soap_t, endSession, bool,
|
|||||||
xmlSetNs(request, this->ns);
|
xmlSetNs(request, this->ns);
|
||||||
xmlNewProp(request, "session-id", this->session_id);
|
xmlNewProp(request, "session-id", this->session_id);
|
||||||
|
|
||||||
soap_msg = tnc_ifmap2_soap_msg_create(this->uri, this->user_pass, this->tls);
|
soap_msg = tnc_ifmap_soap_msg_create(this->uri, this->user_pass, this->tls);
|
||||||
success = soap_msg->post(soap_msg, request, "endSessionResult", NULL);
|
success = soap_msg->post(soap_msg, request, "endSessionResult", NULL);
|
||||||
soap_msg->destroy(soap_msg);
|
soap_msg->destroy(soap_msg);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_t, destroy, void,
|
METHOD(tnc_ifmap_soap_t, destroy, void,
|
||||||
private_tnc_ifmap2_soap_t *this)
|
private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
if (this->session_id)
|
if (this->session_id)
|
||||||
{
|
{
|
||||||
@@ -620,7 +620,7 @@ METHOD(tnc_ifmap2_soap_t, destroy, void,
|
|||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool soap_init(private_tnc_ifmap2_soap_t *this)
|
static bool soap_init(private_tnc_ifmap_soap_t *this)
|
||||||
{
|
{
|
||||||
char *server_uri, *server_str, *port_str, *uri_str;
|
char *server_uri, *server_str, *port_str, *uri_str;
|
||||||
char *server_cert, *client_cert, *client_key, *user_pass;
|
char *server_cert, *client_cert, *client_key, *user_pass;
|
||||||
@@ -631,15 +631,15 @@ static bool soap_init(private_tnc_ifmap2_soap_t *this)
|
|||||||
|
|
||||||
/* getting configuration parameters from strongswan.conf */
|
/* getting configuration parameters from strongswan.conf */
|
||||||
server_uri = lib->settings->get_str(lib->settings,
|
server_uri = lib->settings->get_str(lib->settings,
|
||||||
"%s.plugins.tnc-ifmap2.server_uri", IFMAP_URI, charon->name);
|
"%s.plugins.tnc-ifmap.server_uri", IFMAP_URI, charon->name);
|
||||||
server_cert = lib->settings->get_str(lib->settings,
|
server_cert = lib->settings->get_str(lib->settings,
|
||||||
"%s.plugins.tnc-ifmap2.server_cert", NULL, charon->name);
|
"%s.plugins.tnc-ifmap.server_cert", NULL, charon->name);
|
||||||
client_cert = lib->settings->get_str(lib->settings,
|
client_cert = lib->settings->get_str(lib->settings,
|
||||||
"%s.plugins.tnc-ifmap2.client_cert", NULL, charon->name);
|
"%s.plugins.tnc-ifmap.client_cert", NULL, charon->name);
|
||||||
client_key = lib->settings->get_str(lib->settings,
|
client_key = lib->settings->get_str(lib->settings,
|
||||||
"%s.plugins.tnc-ifmap2.client_key", NULL, charon->name);
|
"%s.plugins.tnc-ifmap.client_key", NULL, charon->name);
|
||||||
user_pass = lib->settings->get_str(lib->settings,
|
user_pass = lib->settings->get_str(lib->settings,
|
||||||
"%s.plugins.tnc-ifmap2.username_password", NULL, charon->name);
|
"%s.plugins.tnc-ifmap.username_password", NULL, charon->name);
|
||||||
|
|
||||||
/* load [self-signed] MAP server certificate */
|
/* load [self-signed] MAP server certificate */
|
||||||
if (!server_cert)
|
if (!server_cert)
|
||||||
@@ -774,9 +774,9 @@ static bool soap_init(private_tnc_ifmap2_soap_t *this)
|
|||||||
/**
|
/**
|
||||||
* See header
|
* See header
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_t *tnc_ifmap2_soap_create()
|
tnc_ifmap_soap_t *tnc_ifmap_soap_create()
|
||||||
{
|
{
|
||||||
private_tnc_ifmap2_soap_t *this;
|
private_tnc_ifmap_soap_t *this;
|
||||||
|
|
||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
+17
-17
@@ -14,37 +14,37 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup tnc_ifmap2_soap tnc_ifmap2_soap
|
* @defgroup tnc_ifmap_soap tnc_ifmap_soap
|
||||||
* @{ @ingroup tnc_ifmap2
|
* @{ @ingroup tnc_ifmap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TNC_IFMAP2_SOAP_H_
|
#ifndef TNC_IFMAP_SOAP_H_
|
||||||
#define TNC_IFMAP2_SOAP_H_
|
#define TNC_IFMAP_SOAP_H_
|
||||||
|
|
||||||
#include <library.h>
|
#include <library.h>
|
||||||
#include <networking/host.h>
|
#include <networking/host.h>
|
||||||
#include <sa/ike_sa.h>
|
#include <sa/ike_sa.h>
|
||||||
|
|
||||||
typedef struct tnc_ifmap2_soap_t tnc_ifmap2_soap_t;
|
typedef struct tnc_ifmap_soap_t tnc_ifmap_soap_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the TNC IF-MAP 2.0 SOAP Binding
|
* Implements the TNC IF-MAP 2.0 SOAP Binding
|
||||||
*/
|
*/
|
||||||
struct tnc_ifmap2_soap_t {
|
struct tnc_ifmap_soap_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new IF-MAP session
|
* Creates a new IF-MAP session
|
||||||
*
|
*
|
||||||
* @return TRUE if command was successful
|
* @return TRUE if command was successful
|
||||||
*/
|
*/
|
||||||
bool (*newSession)(tnc_ifmap2_soap_t *this);
|
bool (*newSession)(tnc_ifmap_soap_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Purges all metadata published by this publisher
|
* Purges all metadata published by this publisher
|
||||||
*
|
*
|
||||||
* @return TRUE if command was successful
|
* @return TRUE if command was successful
|
||||||
*/
|
*/
|
||||||
bool (*purgePublisher)(tnc_ifmap2_soap_t *this);
|
bool (*purgePublisher)(tnc_ifmap_soap_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish metadata about established/deleted IKE_SAs
|
* Publish metadata about established/deleted IKE_SAs
|
||||||
@@ -53,7 +53,7 @@ struct tnc_ifmap2_soap_t {
|
|||||||
* @param up TRUE if IKE_SEA is up, FALSE if down
|
* @param up TRUE if IKE_SEA is up, FALSE if down
|
||||||
* @return TRUE if command was successful
|
* @return TRUE if command was successful
|
||||||
*/
|
*/
|
||||||
bool (*publish_ike_sa)(tnc_ifmap2_soap_t *this, ike_sa_t *ike_sa, bool up);
|
bool (*publish_ike_sa)(tnc_ifmap_soap_t *this, ike_sa_t *ike_sa, bool up);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish PEP device-ip metadata
|
* Publish PEP device-ip metadata
|
||||||
@@ -61,7 +61,7 @@ struct tnc_ifmap2_soap_t {
|
|||||||
* @param host IP address of local endpoint
|
* @param host IP address of local endpoint
|
||||||
* @return TRUE if command was successful
|
* @return TRUE if command was successful
|
||||||
*/
|
*/
|
||||||
bool (*publish_device_ip)(tnc_ifmap2_soap_t *this, host_t *host);
|
bool (*publish_device_ip)(tnc_ifmap_soap_t *this, host_t *host);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish enforcement-report metadata
|
* Publish enforcement-report metadata
|
||||||
@@ -71,7 +71,7 @@ struct tnc_ifmap2_soap_t {
|
|||||||
* @param reason Enforcement reason
|
* @param reason Enforcement reason
|
||||||
* @return TRUE if command was successful
|
* @return TRUE if command was successful
|
||||||
*/
|
*/
|
||||||
bool (*publish_enforcement_report)(tnc_ifmap2_soap_t *this, host_t *host,
|
bool (*publish_enforcement_report)(tnc_ifmap_soap_t *this, host_t *host,
|
||||||
char *action, char *reason);
|
char *action, char *reason);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,17 +79,17 @@ struct tnc_ifmap2_soap_t {
|
|||||||
*
|
*
|
||||||
* @return TRUE if command was successful
|
* @return TRUE if command was successful
|
||||||
*/
|
*/
|
||||||
bool (*endSession)(tnc_ifmap2_soap_t *this);
|
bool (*endSession)(tnc_ifmap_soap_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy a tnc_ifmap2_soap_t.
|
* Destroy a tnc_ifmap_soap_t.
|
||||||
*/
|
*/
|
||||||
void (*destroy)(tnc_ifmap2_soap_t *this);
|
void (*destroy)(tnc_ifmap_soap_t *this);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a tnc_ifmap2_soap instance.
|
* Create a tnc_ifmap_soap instance.
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_t *tnc_ifmap2_soap_create();
|
tnc_ifmap_soap_t *tnc_ifmap_soap_create();
|
||||||
|
|
||||||
#endif /** TNC_IFMAP2_SOAP_H_ @}*/
|
#endif /** TNC_IFMAP_SOAP_H_ @}*/
|
||||||
+14
-14
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
#define _GNU_SOURCE /* for asprintf() */
|
#define _GNU_SOURCE /* for asprintf() */
|
||||||
|
|
||||||
#include "tnc_ifmap2_soap_msg.h"
|
#include "tnc_ifmap_soap_msg.h"
|
||||||
|
|
||||||
#include <utils/debug.h>
|
#include <utils/debug.h>
|
||||||
#include <utils/lexparser.h>
|
#include <utils/lexparser.h>
|
||||||
@@ -24,17 +24,17 @@
|
|||||||
|
|
||||||
#define SOAP_NS "http://www.w3.org/2003/05/soap-envelope"
|
#define SOAP_NS "http://www.w3.org/2003/05/soap-envelope"
|
||||||
|
|
||||||
typedef struct private_tnc_ifmap2_soap_msg_t private_tnc_ifmap2_soap_msg_t;
|
typedef struct private_tnc_ifmap_soap_msg_t private_tnc_ifmap_soap_msg_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private data of an tnc_ifmap2_soap_msg_t object.
|
* Private data of an tnc_ifmap_soap_msg_t object.
|
||||||
*/
|
*/
|
||||||
struct private_tnc_ifmap2_soap_msg_t {
|
struct private_tnc_ifmap_soap_msg_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public tnc_ifmap2_soap_msg_t interface.
|
* Public tnc_ifmap_soap_msg_t interface.
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_msg_t public;
|
tnc_ifmap_soap_msg_t public;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTTPS Server URI with https:// prefix removed
|
* HTTPS Server URI with https:// prefix removed
|
||||||
@@ -61,7 +61,7 @@ struct private_tnc_ifmap2_soap_msg_t {
|
|||||||
/**
|
/**
|
||||||
* Send HTTP POST request and receive HTTP response
|
* Send HTTP POST request and receive HTTP response
|
||||||
*/
|
*/
|
||||||
static bool http_post(private_tnc_ifmap2_soap_msg_t *this, chunk_t out,
|
static bool http_post(private_tnc_ifmap_soap_msg_t *this, chunk_t out,
|
||||||
chunk_t *in)
|
chunk_t *in)
|
||||||
{
|
{
|
||||||
char *host, *path, *request, buf[2048];
|
char *host, *path, *request, buf[2048];
|
||||||
@@ -187,8 +187,8 @@ static xmlNodePtr find_child(xmlNodePtr parent, const xmlChar* name)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_msg_t, post, bool,
|
METHOD(tnc_ifmap_soap_msg_t, post, bool,
|
||||||
private_tnc_ifmap2_soap_msg_t *this, xmlNodePtr request, char *result_name,
|
private_tnc_ifmap_soap_msg_t *this, xmlNodePtr request, char *result_name,
|
||||||
xmlNodePtr *result)
|
xmlNodePtr *result)
|
||||||
{
|
{
|
||||||
xmlDocPtr doc;
|
xmlDocPtr doc;
|
||||||
@@ -302,8 +302,8 @@ METHOD(tnc_ifmap2_soap_msg_t, post, bool,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(tnc_ifmap2_soap_msg_t, destroy, void,
|
METHOD(tnc_ifmap_soap_msg_t, destroy, void,
|
||||||
private_tnc_ifmap2_soap_msg_t *this)
|
private_tnc_ifmap_soap_msg_t *this)
|
||||||
{
|
{
|
||||||
if (this->doc)
|
if (this->doc)
|
||||||
{
|
{
|
||||||
@@ -315,10 +315,10 @@ METHOD(tnc_ifmap2_soap_msg_t, destroy, void,
|
|||||||
/**
|
/**
|
||||||
* See header
|
* See header
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_msg_t *tnc_ifmap2_soap_msg_create(char *uri, chunk_t user_pass,
|
tnc_ifmap_soap_msg_t *tnc_ifmap_soap_msg_create(char *uri, chunk_t user_pass,
|
||||||
tls_socket_t *tls)
|
tls_socket_t *tls)
|
||||||
{
|
{
|
||||||
private_tnc_ifmap2_soap_msg_t *this;
|
private_tnc_ifmap_soap_msg_t *this;
|
||||||
|
|
||||||
INIT(this,
|
INIT(this,
|
||||||
.public = {
|
.public = {
|
||||||
+13
-13
@@ -14,24 +14,24 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup tnc_ifmap2_soap_msg tnc_ifmap2_soap_msg
|
* @defgroup tnc_ifmap_soap_msg tnc_ifmap_soap_msg
|
||||||
* @{ @ingroup tnc_ifmap2
|
* @{ @ingroup tnc_ifmap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TNC_IFMAP2_SOAP_MSG_H_
|
#ifndef TNC_IFMAP_SOAP_MSG_H_
|
||||||
#define TNC_IFMAP2_SOAP_MSG_H_
|
#define TNC_IFMAP_SOAP_MSG_H_
|
||||||
|
|
||||||
#include <library.h>
|
#include <library.h>
|
||||||
#include <tls_socket.h>
|
#include <tls_socket.h>
|
||||||
|
|
||||||
#include <libxml/parser.h>
|
#include <libxml/parser.h>
|
||||||
|
|
||||||
typedef struct tnc_ifmap2_soap_msg_t tnc_ifmap2_soap_msg_t;
|
typedef struct tnc_ifmap_soap_msg_t tnc_ifmap_soap_msg_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for sending and receiving SOAP-XML messages
|
* Interface for sending and receiving SOAP-XML messages
|
||||||
*/
|
*/
|
||||||
struct tnc_ifmap2_soap_msg_t {
|
struct tnc_ifmap_soap_msg_t {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Post an IF-MAP request in a SOAP-XML message and return a result
|
* Post an IF-MAP request in a SOAP-XML message and return a result
|
||||||
@@ -40,23 +40,23 @@ struct tnc_ifmap2_soap_msg_t {
|
|||||||
* @param result_name name of the IF-MAP result
|
* @param result_name name of the IF-MAP result
|
||||||
* @param result XML-encoded IF-MAP result
|
* @param result XML-encoded IF-MAP result
|
||||||
*/
|
*/
|
||||||
bool (*post)(tnc_ifmap2_soap_msg_t *this, xmlNodePtr request,
|
bool (*post)(tnc_ifmap_soap_msg_t *this, xmlNodePtr request,
|
||||||
char *result_name, xmlNodePtr* result);
|
char *result_name, xmlNodePtr* result);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy a tnc_ifmap2_soap_msg_t object.
|
* Destroy a tnc_ifmap_soap_msg_t object.
|
||||||
*/
|
*/
|
||||||
void (*destroy)(tnc_ifmap2_soap_msg_t *this);
|
void (*destroy)(tnc_ifmap_soap_msg_t *this);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a tnc_ifmap2_soap_msg instance.
|
* Create a tnc_ifmap_soap_msg instance.
|
||||||
*
|
*
|
||||||
* @param uri HTTPS URI with https:// prefix removed
|
* @param uri HTTPS URI with https:// prefix removed
|
||||||
* @param user_pass Optional username:password for HTTP Basic Authentication
|
* @param user_pass Optional username:password for HTTP Basic Authentication
|
||||||
* @param tls TLS socket protecting the SOAP message
|
* @param tls TLS socket protecting the SOAP message
|
||||||
*/
|
*/
|
||||||
tnc_ifmap2_soap_msg_t *tnc_ifmap2_soap_msg_create(char *uri, chunk_t user_pass,
|
tnc_ifmap_soap_msg_t *tnc_ifmap_soap_msg_create(char *uri, chunk_t user_pass,
|
||||||
tls_socket_t *tls);
|
tls_socket_t *tls);
|
||||||
|
|
||||||
#endif /** TNC_IFMAP2_SOAP_MSG_H_ @}*/
|
#endif /** TNC_IFMAP_SOAP_MSG_H_ @}*/
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
|
|
||||||
INCLUDES = \
|
|
||||||
-I$(top_srcdir)/src/libstrongswan \
|
|
||||||
-I$(top_srcdir)/src/libtls \
|
|
||||||
-I$(top_srcdir)/src/libhydra \
|
|
||||||
-I$(top_srcdir)/src/libcharon \
|
|
||||||
${xml_CFLAGS}
|
|
||||||
|
|
||||||
AM_CFLAGS = -rdynamic
|
|
||||||
|
|
||||||
if MONOLITHIC
|
|
||||||
noinst_LTLIBRARIES = libstrongswan-tnc-ifmap2.la
|
|
||||||
else
|
|
||||||
plugin_LTLIBRARIES = libstrongswan-tnc-ifmap2.la
|
|
||||||
endif
|
|
||||||
|
|
||||||
libstrongswan_tnc_ifmap2_la_LIBADD = \
|
|
||||||
$(top_builddir)/src/libtls/libtls.la ${xml_LIBS}
|
|
||||||
|
|
||||||
libstrongswan_tnc_ifmap2_la_SOURCES = \
|
|
||||||
tnc_ifmap2_plugin.h tnc_ifmap2_plugin.c \
|
|
||||||
tnc_ifmap2_listener.h tnc_ifmap2_listener.c \
|
|
||||||
tnc_ifmap2_soap.h tnc_ifmap2_soap.c \
|
|
||||||
tnc_ifmap2_soap_msg.h tnc_ifmap2_soap_msg.c
|
|
||||||
|
|
||||||
libstrongswan_tnc_ifmap2_la_LDFLAGS = -module -avoid-version
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user