Remove redundant calls to set peer config after checking out IKE_SAs by config
authorTobias Brunner <tobias@strongswan.org>
Fri, 15 Jan 2021 16:14:07 +0000 (17:14 +0100)
committerTobias Brunner <tobias@strongswan.org>
Fri, 12 Feb 2021 14:49:08 +0000 (15:49 +0100)
src/charon-nm/nm/nm_service.c
src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c
src/libcharon/control/controller.c
src/libcharon/sa/trap_manager.c

index 9aec394..2d93b2f 100644 (file)
@@ -884,18 +884,13 @@ static gboolean connect_(NMVpnServicePlugin *plugin, NMConnection *connection,
         */
        ike_sa = charon->ike_sa_manager->checkout_by_config(charon->ike_sa_manager,
                                                                                                                peer_cfg);
+       peer_cfg->destroy(peer_cfg);
        if (!ike_sa)
        {
-               peer_cfg->destroy(peer_cfg);
                g_set_error(err, NM_VPN_PLUGIN_ERROR, NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,
                                        "IKE version not supported.");
                return FALSE;
        }
-       if (!ike_sa->get_peer_cfg(ike_sa))
-       {
-               ike_sa->set_peer_cfg(ike_sa, peer_cfg);
-       }
-       peer_cfg->destroy(peer_cfg);
 
        /**
         * Register listener, enable  initiate-failure-detection hooks
index 9675cbb..3e686ac 100644 (file)
@@ -911,18 +911,13 @@ static job_requeue_t initiate(private_android_service_t *this)
        /* get us an IKE_SA */
        ike_sa = charon->ike_sa_manager->checkout_by_config(charon->ike_sa_manager,
                                                                                                                peer_cfg);
+       peer_cfg->destroy(peer_cfg);
        if (!ike_sa)
        {
-               peer_cfg->destroy(peer_cfg);
                charonservice->update_status(charonservice,
                                                                         CHARONSERVICE_GENERIC_ERROR);
                return JOB_REQUEUE_NONE;
        }
-       if (!ike_sa->get_peer_cfg(ike_sa))
-       {
-               ike_sa->set_peer_cfg(ike_sa, peer_cfg);
-       }
-       peer_cfg->destroy(peer_cfg);
 
        /* store the IKE_SA so we can track its progress */
        this->ike_sa = ike_sa;
index 3baa934..46b065e 100644 (file)
@@ -417,10 +417,10 @@ METHOD(job_t, initiate_execute, job_requeue_t,
 
        ike_sa = charon->ike_sa_manager->checkout_by_config(charon->ike_sa_manager,
                                                                                                                peer_cfg);
+       peer_cfg->destroy(peer_cfg);
        if (!ike_sa)
        {
                DESTROY_IF(listener->child_cfg);
-               peer_cfg->destroy(peer_cfg);
                listener->status = FAILED;
                listener_done(listener);
                return JOB_REQUEUE_NONE;
@@ -429,11 +429,6 @@ METHOD(job_t, initiate_execute, job_requeue_t,
        listener->ike_sa = ike_sa;
        listener->lock->unlock(listener->lock);
 
-       if (ike_sa->get_peer_cfg(ike_sa) == NULL)
-       {
-               ike_sa->set_peer_cfg(ike_sa, peer_cfg);
-       }
-       peer_cfg->destroy(peer_cfg);
 
        if (listener->options.limits && ike_sa->get_state(ike_sa) == IKE_CREATED)
        {       /* only check if we are not reusing an IKE_SA */
index 2bc531b..49ad136 100644 (file)
@@ -538,12 +538,10 @@ METHOD(trap_manager_t, acquire, void,
                ike_sa = charon->ike_sa_manager->checkout_by_config(
                                                                                        charon->ike_sa_manager, peer);
        }
+       peer->destroy(peer);
+
        if (ike_sa)
        {
-               if (ike_sa->get_peer_cfg(ike_sa) == NULL)
-               {
-                       ike_sa->set_peer_cfg(ike_sa, peer);
-               }
                if (this->ignore_acquire_ts || ike_sa->get_version(ike_sa) == IKEV1)
                {       /* in IKEv1, don't prepend the acquiring packet TS, as we only
                         * have a single TS that we can establish in a Quick Mode. */
@@ -572,7 +570,6 @@ METHOD(trap_manager_t, acquire, void,
                destroy_acquire(acquire);
                child->destroy(child);
        }
-       peer->destroy(peer);
 }
 
 /**