aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/ha
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-01-20 13:42:37 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:31:38 +0100
commitaa3b53e7165da9d03ccc23a0f0feeeeda6e76219 (patch)
tree6923ae31dc0a796edff3075daaf5458e870c3d27 /src/libcharon/plugins/ha
parentfed5c33440d609721cfdd5992f269c52a6191539 (diff)
downloadstrongswan-aa3b53e7165da9d03ccc23a0f0feeeeda6e76219.tar.bz2
strongswan-aa3b53e7165da9d03ccc23a0f0feeeeda6e76219.tar.xz
Adopt children after syncing a rekeyed IKEv1 SA
Diffstat (limited to 'src/libcharon/plugins/ha')
-rw-r--r--src/libcharon/plugins/ha/ha_dispatcher.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c
index 7ce23b3c6..328b923b0 100644
--- a/src/libcharon/plugins/ha/ha_dispatcher.c
+++ b/src/libcharon/plugins/ha/ha_dispatcher.c
@@ -19,6 +19,7 @@
#include <sa/ikev2/keymat_v2.h>
#include <sa/ikev1/keymat_v1.h>
#include <processing/jobs/callback_job.h>
+#include <processing/jobs/adopt_children_job.h>
typedef struct private_ha_dispatcher_t private_ha_dispatcher_t;
typedef struct ha_diffie_hellman_t ha_diffie_hellman_t;
@@ -427,6 +428,11 @@ static void process_ike_update(private_ha_dispatcher_t *this,
}
}
}
+ if (ike_sa->get_version(ike_sa) == IKEV1)
+ {
+ lib->processor->queue_job(lib->processor, (job_t*)
+ adopt_children_job_create(ike_sa->get_id(ike_sa)));
+ }
this->cache->cache(this->cache, ike_sa, message);
charon->ike_sa_manager->checkin(charon->ike_sa_manager, ike_sa);
}