mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-04 00:00:14 -04:00
ike-rekey: Don't actively rekey already rekeyed SAs
If the peer successfully rekeyed the SA it gets marked as IKE_REKEYED and it remains until the peer deletes it (or a timeout). There is no point in rekeying such SAs again. IKE_REKEYING will be relevant if we have multi-KE rekeyings and are waiting for followup key exchanges for a passive rekeying.
This commit is contained in:
parent
c8a5ae2def
commit
6de79119f8
@ -168,6 +168,14 @@ METHOD(task_t, build_i, status_t,
|
|||||||
/* create new SA only on first try */
|
/* create new SA only on first try */
|
||||||
if (!this->new_sa)
|
if (!this->new_sa)
|
||||||
{
|
{
|
||||||
|
if (this->ike_sa->get_state(this->ike_sa) == IKE_REKEYING ||
|
||||||
|
this->ike_sa->get_state(this->ike_sa) == IKE_REKEYED)
|
||||||
|
{
|
||||||
|
/* ignore SAs that have or are currently being rekeyed passively */
|
||||||
|
message->set_exchange_type(message, EXCHANGE_TYPE_UNDEFINED);
|
||||||
|
return SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
version = this->ike_sa->get_version(this->ike_sa);
|
version = this->ike_sa->get_version(this->ike_sa);
|
||||||
this->new_sa = charon->ike_sa_manager->create_new(
|
this->new_sa = charon->ike_sa_manager->create_new(
|
||||||
charon->ike_sa_manager, version, TRUE);
|
charon->ike_sa_manager, version, TRUE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user