From 7f6386afd9b578f1854184e43cfb4849672f8e71 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 15 Jan 2021 17:14:07 +0100 Subject: [PATCH] Remove redundant calls to set peer config after checking out IKE_SAs by config --- src/charon-nm/nm/nm_service.c | 7 +------ .../main/jni/libandroidbridge/backend/android_service.c | 7 +------ src/libcharon/control/controller.c | 7 +------ src/libcharon/sa/trap_manager.c | 7 ++----- 4 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/charon-nm/nm/nm_service.c b/src/charon-nm/nm/nm_service.c index 9aec3942e..2d93b2fae 100644 --- a/src/charon-nm/nm/nm_service.c +++ b/src/charon-nm/nm/nm_service.c @@ -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 diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c b/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c index 9675cbbbc..3e686ac83 100644 --- a/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c +++ b/src/frontends/android/app/src/main/jni/libandroidbridge/backend/android_service.c @@ -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; diff --git a/src/libcharon/control/controller.c b/src/libcharon/control/controller.c index 3baa9342a..46b065e3f 100644 --- a/src/libcharon/control/controller.c +++ b/src/libcharon/control/controller.c @@ -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 */ diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index 2bc531b38..49ad13624 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -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); } /**