From a7bc0bf4a6c091637e81eec0c268e5947f5c1e21 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 11 Jun 2013 16:11:14 +0200 Subject: [PATCH] ike: reuse the reqid of an installed trap having the same config When we have a trap installed, but a CHILD_SA gets established for the same config from the peer, we should reuse the same reqid. Otherwise we would have two identical policies using different reqids, what we can't handle in our kernel backend. --- src/libcharon/sa/child_sa.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libcharon/sa/child_sa.c b/src/libcharon/sa/child_sa.c index f50e32ff1..1069b2d91 100644 --- a/src/libcharon/sa/child_sa.c +++ b/src/libcharon/sa/child_sa.c @@ -1149,7 +1149,11 @@ child_sa_t * child_sa_create(host_t *me, host_t* other, } else { - this->reqid = ref_get(&reqid); + this->reqid = charon->traps->find_reqid(charon->traps, config); + if (!this->reqid) + { + this->reqid = ref_get(&reqid); + } } }