]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
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 5f7d81b59b0e5138c8ef6514f567111b260b0b57..d00896d8dc51f3648a3228cf68b90a29a9e0b0bb 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 715fa033e301fc5fe58ac4ffde3d32fbb49695a9..d7f81e1de2b1116ee2b9ad4064835899e41761f5 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);
                        }