aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/control/interface_manager.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-02-05 12:39:30 +0000
committerMartin Willi <martin@strongswan.org>2008-02-05 12:39:30 +0000
commit5bbac9ffff31015640729c2a7881f34f245c5793 (patch)
tree3293df5ed57793111a0ba209189a76fee3b00098 /src/charon/control/interface_manager.c
parentcdd33ec6650eb3b5e63f5551ee14a1bd580162ef (diff)
downloadstrongswan-5bbac9ffff31015640729c2a7881f34f245c5793.tar.bz2
strongswan-5bbac9ffff31015640729c2a7881f34f245c5793.tar.xz
split connections with different virtual IPs in different peer_cfgs
respect different peer_cfg's when initiating a CHILD_SA within an existing IKE_SA
Diffstat (limited to 'src/charon/control/interface_manager.c')
-rw-r--r--src/charon/control/interface_manager.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/charon/control/interface_manager.c b/src/charon/control/interface_manager.c
index c14903c7d..4d5aa2ea6 100644
--- a/src/charon/control/interface_manager.c
+++ b/src/charon/control/interface_manager.c
@@ -171,14 +171,11 @@ static bool initiate_listener(interface_bus_listener_t *this, signal_t signal,
static status_t initiate_execute(interface_job_t *job)
{
ike_sa_t *ike_sa;
- ike_cfg_t *ike_cfg;
interface_bus_listener_t *listener = &job->listener;
peer_cfg_t *peer_cfg = listener->peer_cfg;
- ike_cfg = peer_cfg->get_ike_cfg(peer_cfg);
- ike_sa = charon->ike_sa_manager->checkout_by_peer(charon->ike_sa_manager,
- ike_cfg->get_my_host(ike_cfg), ike_cfg->get_other_host(ike_cfg),
- peer_cfg->get_my_id(peer_cfg), peer_cfg->get_other_id(peer_cfg));
+ ike_sa = charon->ike_sa_manager->checkout_by_config(charon->ike_sa_manager,
+ peer_cfg);
listener->ike_sa = ike_sa;
if (ike_sa->get_peer_cfg(ike_sa) == NULL)
@@ -435,15 +432,11 @@ static bool route_listener(interface_bus_listener_t *this, signal_t signal,
static status_t route_execute(interface_job_t *job)
{
ike_sa_t *ike_sa;
- ike_cfg_t *ike_cfg;
interface_bus_listener_t *listener = &job->listener;
peer_cfg_t *peer_cfg = listener->peer_cfg;
- ike_cfg = peer_cfg->get_ike_cfg(peer_cfg);
-
- ike_sa = charon->ike_sa_manager->checkout_by_peer(charon->ike_sa_manager,
- ike_cfg->get_my_host(ike_cfg), ike_cfg->get_other_host(ike_cfg),
- peer_cfg->get_my_id(peer_cfg), peer_cfg->get_other_id(peer_cfg));
+ ike_sa = charon->ike_sa_manager->checkout_by_config(charon->ike_sa_manager,
+ peer_cfg);
listener->ike_sa = ike_sa;
if (ike_sa->get_peer_cfg(ike_sa) == NULL)