kernel-interface: Raise expires with a proto/SPI/dst tuple instead of reqid

This commit is contained in:
Martin Willi
2015-02-20 13:34:50 +01:00
parent 971a91685d
commit f81a949748
20 changed files with 124 additions and 118 deletions
+8 -6
View File
@@ -117,19 +117,20 @@ static job_requeue_t rekey_child(char *config)
enumerator_t *enumerator, *children;
ike_sa_t *ike_sa;
child_sa_t *child_sa;
u_int32_t reqid = 0, spi = 0;
protocol_id_t proto = PROTO_ESP;
u_int32_t spi, proto;
host_t *dst = NULL;
enumerator = charon->controller->create_ike_sa_enumerator(
charon->controller, TRUE);
while (enumerator->enumerate(enumerator, &ike_sa))
{
children = ike_sa->create_child_sa_enumerator(ike_sa);
while (children->enumerate(children, (void**)&child_sa))
while (children->enumerate(children, &child_sa))
{
if (streq(config, child_sa->get_name(child_sa)))
{
reqid = child_sa->get_reqid(child_sa);
dst = ike_sa->get_my_host(ike_sa);
dst = dst->clone(dst);
proto = child_sa->get_protocol(child_sa);
spi = child_sa->get_spi(child_sa, TRUE);
break;
@@ -138,11 +139,12 @@ static job_requeue_t rekey_child(char *config)
children->destroy(children);
}
enumerator->destroy(enumerator);
if (reqid)
if (dst)
{
DBG1(DBG_CFG, "starting rekey of CHILD_SA '%s'", config);
lib->processor->queue_job(lib->processor,
(job_t*)rekey_child_sa_job_create(reqid, proto, spi));
(job_t*)rekey_child_sa_job_create(proto, spi, dst));
dst->destroy(dst);
}
else
{