Fix IKEv1 DELETE subtask creation and processing

This commit is contained in:
Martin Willi
2012-03-20 17:31:19 +01:00
parent 10e18713f1
commit 5dec456b69
+6 -2
View File
@@ -94,16 +94,20 @@ METHOD(task_t, process_r, status_t,
} }
continue; continue;
case DELETE_V1: case DELETE_V1:
if (!this->del)
{
delete = (delete_payload_t*)payload; delete = (delete_payload_t*)payload;
if (delete->get_protocol_id(delete) == PROTO_IKE) if (delete->get_protocol_id(delete) == PROTO_IKE)
{ {
this->del = (task_t*)ike_delete_create(this->ike_sa, FALSE); this->del = (task_t*)ike_delete_create(this->ike_sa,
FALSE);
} }
else else
{ {
this->del = (task_t*)child_delete_create(this->ike_sa, this->del = (task_t*)child_delete_create(this->ike_sa,
PROTO_NONE, 0); PROTO_NONE, 0);
} }
}
break; break;
default: default:
continue; continue;
@@ -112,7 +116,7 @@ METHOD(task_t, process_r, status_t,
} }
enumerator->destroy(enumerator); enumerator->destroy(enumerator);
if (status == SUCCESS) if (this->del && status == SUCCESS)
{ {
return this->del->process(this->del, message); return this->del->process(this->del, message);
} }