aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/processing/jobs/delete_child_sa_job.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-01-02 15:40:31 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:31:31 +0100
commit3a925f74ab3cc43bafa409b89feaa32caeb33364 (patch)
tree22dbb61589d391aa028ff6137c274841c6672561 /src/libcharon/processing/jobs/delete_child_sa_job.c
parent07202a2bf1b4caf3ceabe016128c890ec27ccb91 (diff)
downloadstrongswan-3a925f74ab3cc43bafa409b89feaa32caeb33364.tar.bz2
strongswan-3a925f74ab3cc43bafa409b89feaa32caeb33364.tar.xz
Do not query CHILD_SA during delete if they already expired
Diffstat (limited to 'src/libcharon/processing/jobs/delete_child_sa_job.c')
-rw-r--r--src/libcharon/processing/jobs/delete_child_sa_job.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/libcharon/processing/jobs/delete_child_sa_job.c b/src/libcharon/processing/jobs/delete_child_sa_job.c
index bd8bb9562..ac1dfd663 100644
--- a/src/libcharon/processing/jobs/delete_child_sa_job.c
+++ b/src/libcharon/processing/jobs/delete_child_sa_job.c
@@ -44,6 +44,11 @@ struct private_delete_child_sa_job_t {
* inbound SPI of the CHILD_SA
*/
u_int32_t spi;
+
+ /**
+ * Delete for an expired CHILD_SA
+ */
+ bool expired;
};
METHOD(job_t, destroy, void,
@@ -66,7 +71,7 @@ METHOD(job_t, execute, void,
}
else
{
- ike_sa->delete_child_sa(ike_sa, this->protocol, this->spi);
+ ike_sa->delete_child_sa(ike_sa, this->protocol, this->spi, this->expired);
charon->ike_sa_manager->checkin(charon->ike_sa_manager, ike_sa);
}
@@ -83,8 +88,7 @@ METHOD(job_t, get_priority, job_priority_t,
* Described in header
*/
delete_child_sa_job_t *delete_child_sa_job_create(u_int32_t reqid,
- protocol_id_t protocol,
- u_int32_t spi)
+ protocol_id_t protocol, u_int32_t spi, bool expired)
{
private_delete_child_sa_job_t *this;
@@ -99,6 +103,7 @@ delete_child_sa_job_t *delete_child_sa_job_create(u_int32_t reqid,
.reqid = reqid,
.protocol = protocol,
.spi = spi,
+ .expired = expired,
);
return &this->public;