aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/unity
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-09-13 15:09:21 +0200
committerMartin Willi <martin@revosec.ch>2012-09-18 17:17:48 +0200
commit284ed1b352ba5a38f6a62eaa4c12331c2dc6d7c3 (patch)
tree461a49dbef3494577d084990264a4e9819399b99 /src/libcharon/plugins/unity
parent6e608076375ccae3da67628fe14a1396f706af19 (diff)
downloadstrongswan-284ed1b352ba5a38f6a62eaa4c12331c2dc6d7c3.tar.bz2
strongswan-284ed1b352ba5a38f6a62eaa4c12331c2dc6d7c3.tar.xz
Enable Cisco Unity only if Unity vendor id received
Diffstat (limited to 'src/libcharon/plugins/unity')
-rw-r--r--src/libcharon/plugins/unity/unity_handler.c3
-rw-r--r--src/libcharon/plugins/unity/unity_narrow.c3
-rw-r--r--src/libcharon/plugins/unity/unity_provider.c1
3 files changed, 5 insertions, 2 deletions
diff --git a/src/libcharon/plugins/unity/unity_handler.c b/src/libcharon/plugins/unity/unity_handler.c
index e48debede..b2aeba605 100644
--- a/src/libcharon/plugins/unity/unity_handler.c
+++ b/src/libcharon/plugins/unity/unity_handler.c
@@ -341,7 +341,8 @@ METHOD(attribute_handler_t, create_attribute_enumerator, enumerator_t *,
ike_sa_t *ike_sa;
ike_sa = charon->bus->get_sa(charon->bus);
- if (!ike_sa || ike_sa->get_version(ike_sa) != IKEV1)
+ if (!ike_sa || ike_sa->get_version(ike_sa) != IKEV1 ||
+ !ike_sa->supports_extension(ike_sa, EXT_CISCO_UNITY))
{
return enumerator_create_empty();
}
diff --git a/src/libcharon/plugins/unity/unity_narrow.c b/src/libcharon/plugins/unity/unity_narrow.c
index 3ee7f93ab..6a86fed26 100644
--- a/src/libcharon/plugins/unity/unity_narrow.c
+++ b/src/libcharon/plugins/unity/unity_narrow.c
@@ -116,7 +116,8 @@ METHOD(listener_t, narrow, bool,
private_unity_narrow_t *this, ike_sa_t *ike_sa, child_sa_t *child_sa,
narrow_hook_t type, linked_list_t *local, linked_list_t *remote)
{
- if (ike_sa->get_version(ike_sa) == IKEV1)
+ if (ike_sa->get_version(ike_sa) == IKEV1 &&
+ ike_sa->supports_extension(ike_sa, EXT_CISCO_UNITY))
{
switch (type)
{
diff --git a/src/libcharon/plugins/unity/unity_provider.c b/src/libcharon/plugins/unity/unity_provider.c
index 753cd9839..5ebde17d3 100644
--- a/src/libcharon/plugins/unity/unity_provider.c
+++ b/src/libcharon/plugins/unity/unity_provider.c
@@ -108,6 +108,7 @@ METHOD(attribute_provider_t, create_attribute_enumerator, enumerator_t*,
ike_sa = charon->bus->get_sa(charon->bus);
if (!ike_sa || ike_sa->get_version(ike_sa) != IKEV1 ||
+ !ike_sa->supports_extension(ike_sa, EXT_CISCO_UNITY) ||
!vips->get_count(vips))
{
return NULL;