kernel-interface: Raise expires with a proto/SPI/dst tuple instead of reqid
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user