]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
always update reqid on policy install, fixes dpdaction=hold issue
authorMartin Willi <martin@strongswan.org>
Mon, 19 Mar 2007 10:00:56 +0000 (10:00 -0000)
committerMartin Willi <martin@strongswan.org>
Mon, 19 Mar 2007 10:00:56 +0000 (10:00 -0000)
src/charon/threads/kernel_interface.c

index a2a4265a7f579f1e26506a2f012907791dec293f..43956b05542a3d2c142efbaf6719bbb4cd28f709 100644 (file)
@@ -1585,22 +1585,14 @@ static status_t add_policy(private_kernel_interface_t *this,
                if (memcmp(&current->sel, &policy->sel, sizeof(struct xfrm_selector)) == 0 &&
                        policy->direction == current->direction)
                {
-                       free(policy);
                        /* use existing policy */
                        if (!update)
                        {
                                current->refcount++;
                                DBG2(DBG_KNL, "policy %R===%R already exists, increasing ",
                                         "refcount", src_ts, dst_ts);
-                               if (!high_prio)
-                               {
-                                       /* if added policy is for a ROUTED child_sa, do not
-                                        * overwrite existing INSTALLED policy */
-                                       iterator->destroy(iterator);
-                                       pthread_mutex_unlock(&this->policies_mutex);
-                                       return SUCCESS;
-                               }
                        }
+                       free(policy);
                        policy = current;
                        found = TRUE;
                        break;