ike-rekey: There is no passive reauth task, so it will never collide with one
authorTobias Brunner <tobias@strongswan.org>
Tue, 31 May 2016 12:35:22 +0000 (14:35 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 17 Jun 2016 16:48:06 +0000 (18:48 +0200)
src/libcharon/sa/ikev2/task_manager_v2.c
src/libcharon/sa/ikev2/tasks/ike_rekey.c

index 5f7d81b..d00896d 100644 (file)
@@ -761,8 +761,7 @@ static bool handle_collisions(private_task_manager_t *this, task_t *task)
 
        /* do we have to check  */
        if (type == TASK_IKE_REKEY || type == TASK_CHILD_REKEY ||
-               type == TASK_CHILD_DELETE || type == TASK_IKE_DELETE ||
-               type == TASK_IKE_REAUTH)
+               type == TASK_CHILD_DELETE || type == TASK_IKE_DELETE)
        {
                /* find an exchange collision, and notify these tasks */
                enumerator = array_create_enumerator(this->active_tasks);
@@ -771,8 +770,7 @@ static bool handle_collisions(private_task_manager_t *this, task_t *task)
                        switch (active->get_type(active))
                        {
                                case TASK_IKE_REKEY:
-                                       if (type == TASK_IKE_REKEY || type == TASK_IKE_DELETE ||
-                                               type == TASK_IKE_REAUTH)
+                                       if (type == TASK_IKE_REKEY || type == TASK_IKE_DELETE)
                                        {
                                                ike_rekey_t *rekey = (ike_rekey_t*)active;
                                                rekey->collide(rekey, task);
index 715fa03..d7f81e1 100644 (file)
@@ -284,9 +284,8 @@ METHOD(task_t, process_i, status_t,
        {
                case FAILED:
                        /* rekeying failed, fallback to old SA */
-                       if (!(this->collision && (
-                               this->collision->get_type(this->collision) == TASK_IKE_DELETE ||
-                               this->collision->get_type(this->collision) == TASK_IKE_REAUTH)))
+                       if (!this->collision ||
+                               this->collision->get_type(this->collision) != TASK_IKE_DELETE)
                        {
                                schedule_delayed_rekey(this);
                        }