ike-delete: No need to wait for a response in case of concurrent deletes
RFC 7296 explicitly says we SHOULD reply as usual and forget about our own close request.
This commit is contained in:
@@ -45,11 +45,6 @@ struct private_ike_delete_t {
|
|||||||
* are we deleting a rekeyed SA?
|
* are we deleting a rekeyed SA?
|
||||||
*/
|
*/
|
||||||
bool rekeyed;
|
bool rekeyed;
|
||||||
|
|
||||||
/**
|
|
||||||
* are we responding to a delete, but have initated our own?
|
|
||||||
*/
|
|
||||||
bool simultaneous;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
METHOD(task_t, build_i, status_t,
|
METHOD(task_t, build_i, status_t,
|
||||||
@@ -128,9 +123,6 @@ METHOD(task_t, process_r, status_t,
|
|||||||
case IKE_REKEYED:
|
case IKE_REKEYED:
|
||||||
this->rekeyed = TRUE;
|
this->rekeyed = TRUE;
|
||||||
break;
|
break;
|
||||||
case IKE_DELETING:
|
|
||||||
this->simultaneous = TRUE;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -143,11 +135,6 @@ METHOD(task_t, build_r, status_t,
|
|||||||
{
|
{
|
||||||
DBG0(DBG_IKE, "IKE_SA deleted");
|
DBG0(DBG_IKE, "IKE_SA deleted");
|
||||||
|
|
||||||
if (this->simultaneous)
|
|
||||||
{
|
|
||||||
/* wait for peer's response for our delete request */
|
|
||||||
return SUCCESS;
|
|
||||||
}
|
|
||||||
if (!this->rekeyed)
|
if (!this->rekeyed)
|
||||||
{ /* invoke ike_down() hook if SA has not been rekeyed */
|
{ /* invoke ike_down() hook if SA has not been rekeyed */
|
||||||
charon->bus->ike_updown(charon->bus, this->ike_sa, FALSE);
|
charon->bus->ike_updown(charon->bus, this->ike_sa, FALSE);
|
||||||
@@ -166,7 +153,6 @@ METHOD(task_t, migrate, void,
|
|||||||
private_ike_delete_t *this, ike_sa_t *ike_sa)
|
private_ike_delete_t *this, ike_sa_t *ike_sa)
|
||||||
{
|
{
|
||||||
this->ike_sa = ike_sa;
|
this->ike_sa = ike_sa;
|
||||||
this->simultaneous = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(task_t, destroy, void,
|
METHOD(task_t, destroy, void,
|
||||||
|
|||||||
Reference in New Issue
Block a user