fixed statusall rekey time jitter bug (again)
This commit is contained in:
@@ -128,6 +128,11 @@ struct private_child_sa_t {
|
|||||||
*/
|
*/
|
||||||
time_t install_time;
|
time_t install_time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* absolute time when rekeying is sceduled
|
||||||
|
*/
|
||||||
|
time_t rekey_time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* state of the CHILD_SA
|
* 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->encryption = *enc_algo;
|
||||||
this->integrity = *int_algo;
|
this->integrity = *int_algo;
|
||||||
this->install_time = time(NULL);
|
this->install_time = time(NULL);
|
||||||
|
this->rekey_time = soft;
|
||||||
|
|
||||||
return status;
|
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]));
|
private_child_sa_t *this = *((private_child_sa_t**)(args[0]));
|
||||||
iterator_t *iterator;
|
iterator_t *iterator;
|
||||||
sa_policy_t *policy;
|
sa_policy_t *policy;
|
||||||
u_int32_t now, rekeying, soft;
|
u_int32_t now, rekeying;
|
||||||
u_int32_t use, use_in, use_fwd;
|
u_int32_t use, use_in, use_fwd;
|
||||||
status_t status;
|
status_t status;
|
||||||
size_t written = 0;
|
size_t written = 0;
|
||||||
@@ -792,11 +798,10 @@ static int print(FILE *stream, const struct printf_info *info,
|
|||||||
}
|
}
|
||||||
written += fprintf(stream, ", rekeying ");
|
written += fprintf(stream, ", rekeying ");
|
||||||
|
|
||||||
soft = this->policy->get_soft_lifetime(this->policy);
|
|
||||||
/* calculate rekey times */
|
/* 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);
|
written += fprintf(stream, "in %ds", rekeying);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user