From: Martin Willi Date: Tue, 20 Mar 2007 14:56:41 +0000 (-0000) Subject: fixed statusall rekey time jitter bug (again) X-Git-Tag: 4.1.0~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e70d5576fa89e62ef7499e7398e5dc07739921c1;p=thirdparty%2Fstrongswan.git fixed statusall rekey time jitter bug (again) --- diff --git a/src/charon/sa/child_sa.c b/src/charon/sa/child_sa.c index ea7590cebb..19131389d9 100644 --- a/src/charon/sa/child_sa.c +++ b/src/charon/sa/child_sa.c @@ -128,6 +128,11 @@ struct private_child_sa_t { */ time_t install_time; + /** + * absolute time when rekeying is sceduled + */ + time_t rekey_time; + /** * state of the CHILD_SA */ @@ -537,6 +542,7 @@ static status_t install(private_child_sa_t *this, proposal_t *proposal, this->encryption = *enc_algo; this->integrity = *int_algo; this->install_time = time(NULL); + this->rekey_time = soft; return status; } @@ -743,7 +749,7 @@ static int print(FILE *stream, const struct printf_info *info, private_child_sa_t *this = *((private_child_sa_t**)(args[0])); iterator_t *iterator; sa_policy_t *policy; - u_int32_t now, rekeying, soft; + u_int32_t now, rekeying; u_int32_t use, use_in, use_fwd; status_t status; size_t written = 0; @@ -792,11 +798,10 @@ static int print(FILE *stream, const struct printf_info *info, } written += fprintf(stream, ", rekeying "); - soft = this->policy->get_soft_lifetime(this->policy); /* calculate rekey times */ - if (soft) + if (this->rekey_time) { - rekeying = this->install_time + soft - now; + rekeying = this->install_time + this->rekey_time - now; written += fprintf(stream, "in %ds", rekeying); } else