aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-06-05 11:43:19 +0200
committerMartin Willi <martin@revosec.ch>2013-06-19 16:36:01 +0200
commit483a258ad81c65e85a44b98691d9d29efb23e5da (patch)
tree70e41bb86e084c7f12221eb19c953ab84ed46d6c
parent3d1af879d2b8c4dbb8d87aa5ca478e37dadb6dc8 (diff)
downloadstrongswan-483a258ad81c65e85a44b98691d9d29efb23e5da.tar.bz2
strongswan-483a258ad81c65e85a44b98691d9d29efb23e5da.tar.xz
stroke: support %dynamic in left/rightsubnet for dynamic selectors
This has the same meaning as omitting left/rightsubnet, i.e. replace it by the IKE address. Supporting %dynamic allows configurations with multiple dynamic selectors in a left/rightsubnet, each with potentially different proto/port selectors.
-rw-r--r--src/libcharon/plugins/stroke/stroke_config.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libcharon/plugins/stroke/stroke_config.c b/src/libcharon/plugins/stroke/stroke_config.c
index 9db9e01fd..64af5bb9c 100644
--- a/src/libcharon/plugins/stroke/stroke_config.c
+++ b/src/libcharon/plugins/stroke/stroke_config.c
@@ -1020,8 +1020,16 @@ static void add_ts(private_stroke_config_t *this,
continue;
}
}
- ts = traffic_selector_create_from_cidr(subnet, proto,
- from_port, to_port);
+ if (streq(subnet, "%dynamic"))
+ {
+ ts = traffic_selector_create_dynamic(proto,
+ from_port, to_port);
+ }
+ else
+ {
+ ts = traffic_selector_create_from_cidr(subnet, proto,
+ from_port, to_port);
+ }
if (ts)
{
child_cfg->add_traffic_selector(child_cfg, local, ts);