From 498d223e6091bc5f58c413b91d4a66c42039e7c0 Mon Sep 17 00:00:00 2001
From: Timo Sirainen <timo.sirainen@open-xchange.com>
Date: Wed, 27 Nov 2024 22:54:11 +0200
Subject: [PATCH] lib-sieve: storage: ldap: Change ldap_debug_level setting
 type to uint

---
 src/lib-sieve/storage/ldap/sieve-ldap-db.c               | 9 +++------
 src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c | 4 ++--
 src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h | 2 +-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
index bdfb9eb29..1e783c362 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
@@ -706,9 +706,9 @@ static int db_ldap_set_options(struct ldap_connection *conn)
 			    "deref", set->deref) < 0)
 		return -1;
 #ifdef LDAP_OPT_DEBUG_LEVEL
-	if (str_to_int(set->debug_level, &value) >= 0 && value != 0) {
+	if (set->debug_level != 0) {
 		if (db_ldap_set_opt(conn, LDAP_OPT_DEBUG_LEVEL, &value,
-				    "debug_level", set->debug_level) < 0)
+				    "debug_level", dec2str(set->debug_level)) < 0)
 			return -1;
 	}
 #endif
@@ -740,7 +740,6 @@ int sieve_ldap_db_connect(struct ldap_connection *conn)
 	const struct sieve_ldap_settings *set = conn->lstorage->ldap_set;
 	struct sieve_storage *storage = &conn->lstorage->storage;
 	struct timeval start, end;
-	int debug_level;
 	bool debug;
 #if defined(HAVE_LDAP_SASL) || defined(LDAP_HAVE_START_TLS_S)
 	int ret;
@@ -749,9 +748,7 @@ int sieve_ldap_db_connect(struct ldap_connection *conn)
 	if (conn->conn_state != LDAP_CONN_STATE_DISCONNECTED)
 		return 0;
 
-	debug = FALSE;
-	if (str_to_int(set->debug_level, &debug_level) >= 0)
-		debug = debug_level > 0;
+	debug = set->debug_level > 0;
 
 	if (debug)
 		i_gettimeofday(&start);
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 a385b6a6f..9245cae4e 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c
@@ -44,7 +44,7 @@ static const struct setting_define sieve_ldap_setting_defines[] = {
 	DEF(ENUM, scope),
 	DEF(STR, base),
 	DEF(UINT, ldap_version),
-	DEF(STR, debug_level),
+	DEF(UINT, debug_level),
 	DEF(STR, ldaprc_path),
 
 	SETTING_DEFINE_LIST_END
@@ -70,7 +70,7 @@ const struct sieve_ldap_settings sieve_ldap_default_settings = {
 	.scope = "subtree:onelevel:base",
 	.base = "",
 	.ldap_version = 3,
-	.debug_level = "0",
+	.debug_level = 0,
 	.ldaprc_path = "",
 };
 
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 22f90db74..420a40556 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
@@ -28,7 +28,7 @@ struct sieve_ldap_settings {
 	unsigned int ldap_version;
 
 	const char *ldaprc_path;
-	const char *debug_level;
+	unsigned int debug_level;
 
 	/* ... */
 	struct {
-- 
GitLab