Commit eb9e44f783 for strongswan.org

commit eb9e44f783b685f98ba01eac80739ab36531a326
Author: Tobias Brunner <tobias@strongswan.org>
Date:   Thu May 21 17:16:09 2026 +0200

    ike-cfg: Add flag to suppress log message when retrieving proposals

diff --git a/src/libcharon/config/ike_cfg.c b/src/libcharon/config/ike_cfg.c
index 5d73157b01..44bccd5f51 100644
--- a/src/libcharon/config/ike_cfg.c
+++ b/src/libcharon/config/ike_cfg.c
@@ -318,7 +318,7 @@ METHOD(ike_cfg_t, add_proposal, void,
 }

 METHOD(ike_cfg_t, get_proposals, linked_list_t*,
-	private_ike_cfg_t *this)
+	private_ike_cfg_t *this, bool log)
 {
 	enumerator_t *enumerator;
 	proposal_t *current;
@@ -333,8 +333,10 @@ METHOD(ike_cfg_t, get_proposals, linked_list_t*,
 	}
 	enumerator->destroy(enumerator);

-	DBG2(DBG_CFG, "configured proposals: %#P", proposals);
-
+	if (log)
+	{
+		DBG2(DBG_CFG, "configured proposals: %#P", proposals);
+	}
 	return proposals;
 }

diff --git a/src/libcharon/config/ike_cfg.h b/src/libcharon/config/ike_cfg.h
index 9c15815764..200ee0729a 100644
--- a/src/libcharon/config/ike_cfg.h
+++ b/src/libcharon/config/ike_cfg.h
@@ -178,9 +178,10 @@ struct ike_cfg_t {
 	 *
 	 * Returned list and its proposals must be destroyed after use.
 	 *
+	 * @param log			whether to log the configured proposals
 	 * @return				list containing all the proposals
 	 */
-	linked_list_t* (*get_proposals) (ike_cfg_t *this);
+	linked_list_t *(*get_proposals)(ike_cfg_t *this, bool log);

 	/**
 	 * Select a proposal from a list of supplied proposals.
diff --git a/src/libcharon/sa/ikev1/tasks/aggressive_mode.c b/src/libcharon/sa/ikev1/tasks/aggressive_mode.c
index d86c951788..681c8a12f4 100644
--- a/src/libcharon/sa/ikev1/tasks/aggressive_mode.c
+++ b/src/libcharon/sa/ikev1/tasks/aggressive_mode.c
@@ -240,7 +240,7 @@ METHOD(task_t, build_i, status_t,
 																 FALSE);
 			}
 			this->lifetime += this->peer_cfg->get_over_time(this->peer_cfg);
-			proposals = ike_cfg->get_proposals(ike_cfg);
+			proposals = ike_cfg->get_proposals(ike_cfg, TRUE);
 			sa_payload = sa_payload_create_from_proposals_v1(proposals,
 									this->lifetime, 0, this->method, MODE_NONE,
 									ENCAP_NONE, 0);
diff --git a/src/libcharon/sa/ikev1/tasks/main_mode.c b/src/libcharon/sa/ikev1/tasks/main_mode.c
index e8ddff9ab8..936e05c36e 100644
--- a/src/libcharon/sa/ikev1/tasks/main_mode.c
+++ b/src/libcharon/sa/ikev1/tasks/main_mode.c
@@ -271,7 +271,7 @@ METHOD(task_t, build_i, status_t,
 																 FALSE);
 			}
 			this->lifetime += this->peer_cfg->get_over_time(this->peer_cfg);
-			proposals = ike_cfg->get_proposals(ike_cfg);
+			proposals = ike_cfg->get_proposals(ike_cfg, TRUE);
 			sa_payload = sa_payload_create_from_proposals_v1(proposals,
 									this->lifetime, 0, this->method, MODE_NONE,
 									ENCAP_NONE, 0);
diff --git a/src/libcharon/sa/ikev2/tasks/ike_init.c b/src/libcharon/sa/ikev2/tasks/ike_init.c
index b7083917ad..a289962255 100644
--- a/src/libcharon/sa/ikev2/tasks/ike_init.c
+++ b/src/libcharon/sa/ikev2/tasks/ike_init.c
@@ -367,7 +367,7 @@ static bool build_payloads(private_ike_init_t *this, message_t *message)

 	if (this->initiator)
 	{
-		proposal_list = ike_cfg->get_proposals(ike_cfg);
+		proposal_list = ike_cfg->get_proposals(ike_cfg, TRUE);
 		other_ke_methods = linked_list_create();
 		enumerator = proposal_list->create_enumerator(proposal_list);
 		while (enumerator->enumerate(enumerator, (void**)&proposal))
@@ -1216,7 +1216,7 @@ static void raise_alerts(private_ike_init_t *this, notify_type_t type)
 	{
 		case NO_PROPOSAL_CHOSEN:
 			ike_cfg = this->ike_sa->get_ike_cfg(this->ike_sa);
-			list = ike_cfg->get_proposals(ike_cfg);
+			list = ike_cfg->get_proposals(ike_cfg, FALSE);
 			charon->bus->alert(charon->bus, ALERT_PROPOSAL_MISMATCH_IKE, list);
 			list->destroy_offset(list, offsetof(proposal_t, destroy));
 			break;