From bfb609a6efe5fea7755c03a4ac431d526ba4fb10 Mon Sep 17 00:00:00 2001
From: Timo Sirainen <timo.sirainen@open-xchange.com>
Date: Fri, 13 Dec 2024 16:54:30 +0200
Subject: [PATCH] lib-sieve: storage: ldap: Drop ldap_sasl_bind setting

SASL binding is now used if ldap_sasl_mech is non-empty.
---
 src/lib-sieve/storage/ldap/sieve-ldap-db.c               | 8 ++++----
 src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c | 2 --
 src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h | 1 -
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
index dbefce579..c988b680c 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
@@ -712,9 +712,9 @@ static int db_ldap_set_options(struct ldap_connection *conn)
 #endif
 
 	if (set->ldap_version < 3) {
-		if (set->sasl_bind) {
+		if (set->sasl_mech[0] != '\0') {
 			e_error(storage->event,
-				"db: sasl_bind=yes requires ldap_version=3");
+				"db: sasl_mech requires ldap_version=3");
 			return -1;
 		}
 		if (set->starttls) {
@@ -785,7 +785,7 @@ int sieve_ldap_db_connect(struct ldap_connection *conn)
 #endif
 	}
 
-	if (set->sasl_bind) {
+	if (set->sasl_mech[0]) {
 #ifdef HAVE_LDAP_SASL
 		struct db_ldap_sasl_bind_context context;
 
@@ -805,7 +805,7 @@ int sieve_ldap_db_connect(struct ldap_connection *conn)
 			return -1;
 #else
 		e_error(storage->event, "db: "
-			"sasl_bind=yes but no SASL support compiled in");
+			"sasl_mech is set, but no SASL support compiled in");
 		return -1;
 #endif
 		conn->conn_state = LDAP_CONN_STATE_BOUND;
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
index f2561f70d..88a5883ea 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
@@ -29,7 +29,6 @@ static const struct setting_define sieve_ldap_setting_defines[] = {
 	DEF(STR, auth_dn),
 	DEF(STR, auth_dn_password),
 	DEF(BOOL, starttls),
-	DEF(BOOL, sasl_bind),
 	DEF(STR, sasl_mech),
 	DEF(STR, sasl_realm),
 	DEF(STR, sasl_authz_id),
@@ -54,7 +53,6 @@ const struct sieve_ldap_settings sieve_ldap_default_settings = {
 	.auth_dn = "",
 	.auth_dn_password = "",
 	.starttls = FALSE,
-	.sasl_bind = FALSE,
 	.sasl_mech = "",
 	.sasl_realm = "",
 	.sasl_authz_id = "",
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
index de41f579c..98ae1d1be 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
@@ -9,7 +9,6 @@ struct sieve_ldap_settings {
 	const char *auth_dn_password;
 
 	bool starttls;
-	bool sasl_bind;
 	const char *sasl_mech;
 	const char *sasl_realm;
 	const char *sasl_authz_id;
-- 
GitLab