diff options
author | Martin Willi <martin@revosec.ch> | 2012-01-02 15:40:31 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:31:31 +0100 |
commit | 3a925f74ab3cc43bafa409b89feaa32caeb33364 (patch) | |
tree | 22dbb61589d391aa028ff6137c274841c6672561 /src/libcharon/processing/jobs/delete_child_sa_job.c | |
parent | 07202a2bf1b4caf3ceabe016128c890ec27ccb91 (diff) | |
download | strongswan-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.c | 11 |
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; |