From 101d26babeae0a6444bf7a355cbd3fb2e7497fae Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 21 Aug 2012 13:50:32 +0200 Subject: Support multiple virtual IPs on peer_cfg and ike_sa classes --- src/libcharon/plugins/sql/sql_config.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/libcharon/plugins/sql/sql_config.c') diff --git a/src/libcharon/plugins/sql/sql_config.c b/src/libcharon/plugins/sql/sql_config.c index 890077157..343d6e40c 100644 --- a/src/libcharon/plugins/sql/sql_config.c +++ b/src/libcharon/plugins/sql/sql_config.c @@ -371,8 +371,12 @@ static peer_cfg_t *build_peer_cfg(private_sql_config_t *this, enumerator_t *e, peer_cfg = peer_cfg_create( name, IKEV2, ike, cert_policy, uniqueid, keyingtries, rekeytime, reauthtime, jitter, overtime, - mobike, FALSE, dpd_delay, 0, vip, pool, + mobike, FALSE, dpd_delay, 0, pool, mediation, mediated_cfg, peer_id); + if (vip) + { + peer_cfg->add_virtual_ip(peer_cfg, vip); + } auth = auth_cfg_create(); auth->add(auth, AUTH_RULE_AUTH_CLASS, auth_method); auth->add(auth, AUTH_RULE_IDENTITY, local_id); -- cgit v1.2.3 From 497ce2cf51d3e80302e24e5bdf7df566d80b4828 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Fri, 24 Aug 2012 12:31:24 +0000 Subject: Support multiple address pools configured on a peer_cfg --- src/libcharon/plugins/sql/sql_config.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/libcharon/plugins/sql/sql_config.c') diff --git a/src/libcharon/plugins/sql/sql_config.c b/src/libcharon/plugins/sql/sql_config.c index 343d6e40c..e215b39b8 100644 --- a/src/libcharon/plugins/sql/sql_config.c +++ b/src/libcharon/plugins/sql/sql_config.c @@ -371,12 +371,16 @@ static peer_cfg_t *build_peer_cfg(private_sql_config_t *this, enumerator_t *e, peer_cfg = peer_cfg_create( name, IKEV2, ike, cert_policy, uniqueid, keyingtries, rekeytime, reauthtime, jitter, overtime, - mobike, FALSE, dpd_delay, 0, pool, + mobike, FALSE, dpd_delay, 0, mediation, mediated_cfg, peer_id); if (vip) { peer_cfg->add_virtual_ip(peer_cfg, vip); } + if (pool) + { + peer_cfg->add_pool(peer_cfg, pool); + } auth = auth_cfg_create(); auth->add(auth, AUTH_RULE_AUTH_CLASS, auth_method); auth->add(auth, AUTH_RULE_IDENTITY, local_id); -- cgit v1.2.3 From 7b83cc62e0c02afdf0706e0b809d44d3f610706d Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 27 Aug 2012 16:00:13 +0200 Subject: Handle comma separated pools as multiple pool names in SQL plugin --- src/libcharon/plugins/sql/sql_config.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/libcharon/plugins/sql/sql_config.c') diff --git a/src/libcharon/plugins/sql/sql_config.c b/src/libcharon/plugins/sql/sql_config.c index e215b39b8..c614c679e 100644 --- a/src/libcharon/plugins/sql/sql_config.c +++ b/src/libcharon/plugins/sql/sql_config.c @@ -333,6 +333,7 @@ static peer_cfg_t *build_peer_cfg(private_sql_config_t *this, enumerator_t *e, mediation, mediated_by, p_type; chunk_t l_data, r_data, p_data; char *name, *virtual, *pool; + enumerator_t *enumerator; while (e->enumerate(e, &id, &name, &ike_cfg, &l_type, &l_data, &r_type, &r_data, @@ -379,7 +380,14 @@ static peer_cfg_t *build_peer_cfg(private_sql_config_t *this, enumerator_t *e, } if (pool) { - peer_cfg->add_pool(peer_cfg, pool); + /* attr-sql used comma separated pools, but we now completely + * support multiple pools directly. Support old SQL configs: */ + enumerator = enumerator_create_token(pool, ",", " "); + while (enumerator->enumerate(enumerator, &pool)) + { + peer_cfg->add_pool(peer_cfg, pool); + } + enumerator->destroy(enumerator); } auth = auth_cfg_create(); auth->add(auth, AUTH_RULE_AUTH_CLASS, auth_method); -- cgit v1.2.3