diff options
Diffstat (limited to 'main/strongswan/0003-ike-cfg-Add-helper-function-to-determine-address-fam.patch')
-rw-r--r-- | main/strongswan/0003-ike-cfg-Add-helper-function-to-determine-address-fam.patch | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/main/strongswan/0003-ike-cfg-Add-helper-function-to-determine-address-fam.patch b/main/strongswan/0003-ike-cfg-Add-helper-function-to-determine-address-fam.patch deleted file mode 100644 index 0cf63a3f76..0000000000 --- a/main/strongswan/0003-ike-cfg-Add-helper-function-to-determine-address-fam.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 6bfa66069304c1fc1345b4e72762a3b1a80e4338 Mon Sep 17 00:00:00 2001 -From: Tobias Brunner <tobias@strongswan.org> -Date: Thu, 11 Jun 2015 15:42:54 +0200 -Subject: [PATCH] ike-cfg: Add helper function to determine address family of - IP addresses - -All configured static addresses (hostnames, ranges or subnets are not -considered) must be of the same family, otherwise AF_UNSPEC is returned. ---- - src/libcharon/config/ike_cfg.c | 47 ++++++++++++++++++++++++++++++++++++++++++ - src/libcharon/config/ike_cfg.h | 13 +++++++++++- - 2 files changed, 59 insertions(+), 1 deletion(-) - -diff --git a/src/libcharon/config/ike_cfg.c b/src/libcharon/config/ike_cfg.c -index 9464ceb..dee9e4c 100644 ---- a/src/libcharon/config/ike_cfg.c -+++ b/src/libcharon/config/ike_cfg.c -@@ -1,4 +1,5 @@ - /* -+ * Copyright (C) 2012-2015 Tobias Brunner - * Copyright (C) 2005-2007 Martin Willi - * Copyright (C) 2005 Jan Hutter - * Hochschule fuer Technik Rapperswil -@@ -513,6 +514,52 @@ static void parse_addresses(char *str, linked_list_t *hosts, - /** - * Described in header. - */ -+int ike_cfg_get_family(ike_cfg_t *cfg, bool local) -+{ -+ private_ike_cfg_t *this = (private_ike_cfg_t*)cfg; -+ enumerator_t *enumerator; -+ host_t *host; -+ char *str; -+ int family = AF_UNSPEC; -+ -+ if (local) -+ { -+ enumerator = this->my_hosts->create_enumerator(this->my_hosts); -+ } -+ else -+ { -+ enumerator = this->other_hosts->create_enumerator(this->other_hosts); -+ } -+ while (enumerator->enumerate(enumerator, &str)) -+ { -+ if (streq(str, "%any")) -+ { /* ignore %any as its family is undetermined */ -+ continue; -+ } -+ host = host_create_from_string(str, 0); -+ if (host) -+ { -+ if (family == AF_UNSPEC) -+ { -+ family = host->get_family(host); -+ } -+ else if (family != host->get_family(host)) -+ { -+ /* more than one address family defined */ -+ family = AF_UNSPEC; -+ host->destroy(host); -+ break; -+ } -+ } -+ DESTROY_IF(host); -+ } -+ enumerator->destroy(enumerator); -+ return family; -+} -+ -+/** -+ * Described in header. -+ */ - ike_cfg_t *ike_cfg_create(ike_version_t version, bool certreq, bool force_encap, - char *me, u_int16_t my_port, - char *other, u_int16_t other_port, -diff --git a/src/libcharon/config/ike_cfg.h b/src/libcharon/config/ike_cfg.h -index adfcabf..62f5b74 100644 ---- a/src/libcharon/config/ike_cfg.h -+++ b/src/libcharon/config/ike_cfg.h -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2012 Tobias Brunner -+ * Copyright (C) 2012-2015 Tobias Brunner - * Copyright (C) 2005-2007 Martin Willi - * Copyright (C) 2005 Jan Hutter - * Hochschule fuer Technik Rapperswil -@@ -254,4 +254,15 @@ ike_cfg_t *ike_cfg_create(ike_version_t version, bool certreq, bool force_encap, - char *other, u_int16_t other_port, - fragmentation_t fragmentation, u_int8_t dscp); - -+/** -+ * Determine the address family of the local or remtoe address(es). If multiple -+ * families are configured AF_UNSPEC is returned. %any is ignored (%any4|6 are -+ * not though). -+ * -+ * @param local TRUE to check local addresses, FALSE for remote -+ * @return address family of address(es) if distinct -+ */ -+int ike_cfg_get_family(ike_cfg_t *this, bool local); -+ -+ - #endif /** IKE_CFG_H_ @}*/ --- -2.4.6 - |