]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-ldap: ldap_client_settings - Remove ssl_ioset
authorMarco Bettini <marco.bettini@open-xchange.com>
Fri, 11 Oct 2024 15:49:43 +0000 (15:49 +0000)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:40:01 +0000 (10:40 +0200)
src/lib-ldap/ldap-connection.c
src/lib-ldap/ldap-settings.c
src/lib-ldap/ldap-settings.h

index 8ccc39274f2ad56499cd58196967fe4f39496ade..a38e2a904fffc604497c3a3910ad3494c873d818 100644 (file)
@@ -125,7 +125,7 @@ bool ldap_connection_have_settings(struct ldap_connection *conn,
                            conn_set, set, NULL))
                return FALSE;
 
-       if (set->ssl_ioset == NULL || !set->starttls)
+       if (strstr(set->uris, "ldaps://") == NULL && !set->starttls)
                return TRUE;
 
        return settings_equal(&ssl_setting_parser_info,
@@ -163,21 +163,26 @@ int ldap_connection_init(struct ldap_client *client,
        /* cannot use these */
        i_zero(&conn->ssl_ioset.ca);
 
-       if (set->ssl_ioset != NULL) {
+       {
+               const struct ssl_iostream_settings *ssl_ioset;
+               ssl_client_settings_to_iostream_set(set->ssl_set, &ssl_ioset);
+
                /* keep in sync with ldap_connection_have_settings() */
-               conn->ssl_ioset.min_protocol = p_strdup(pool, set->ssl_ioset->min_protocol);
-               conn->ssl_ioset.cipher_list = p_strdup(pool, set->ssl_ioset->cipher_list);
-               conn->ssl_ioset.ca.path = p_strdup(pool, set->ssl_ioset->ca.path);
+               conn->ssl_ioset.min_protocol = p_strdup(pool, ssl_ioset->min_protocol);
+               conn->ssl_ioset.cipher_list = p_strdup(pool, ssl_ioset->cipher_list);
+               conn->ssl_ioset.ca.path = p_strdup(pool, ssl_ioset->ca.path);
                conn->ssl_ioset.ca.content =
-                       p_strdup(pool, set->ssl_ioset->ca.content);
+                       p_strdup(pool, ssl_ioset->ca.content);
                conn->ssl_ioset.cert.cert.path =
-                       p_strdup(pool, set->ssl_ioset->cert.cert.path);
+                       p_strdup(pool, ssl_ioset->cert.cert.path);
                conn->ssl_ioset.cert.cert.content =
-                       p_strdup(pool, set->ssl_ioset->cert.cert.content);
+                       p_strdup(pool, ssl_ioset->cert.cert.content);
                conn->ssl_ioset.cert.key.path =
-                       p_strdup(pool, set->ssl_ioset->cert.key.path);
+                       p_strdup(pool, ssl_ioset->cert.key.path);
                conn->ssl_ioset.cert.key.content =
-                       p_strdup(pool, set->ssl_ioset->cert.key.content);
+                       p_strdup(pool, ssl_ioset->cert.key.content);
+
+               settings_free(ssl_ioset);
        }
        i_assert(ldap_connection_have_settings(conn, set));
 
index 2618c09ee40f49c26bd4435a1c9a013449a8a6b7..6aefe48e92c8ea578f3c229f9660c236986b28c0 100644 (file)
@@ -90,9 +90,7 @@ int ldap_client_settings_get(struct event *event,
                return -1;
        }
 
-       ssl_client_settings_to_iostream_set(set->ssl_set, &set->ssl_ioset);
        bind_pool(set->pool, set->ssl_set->pool);
-       bind_pool(set->pool, set->ssl_ioset->pool);
 
        *set_r = set;
        *error_r = NULL;
index d4d66915d170722a988f9ef6f88c8782420647f1..9725bfe0c98db93d7ac0e216ddb86cc01b978467 100644 (file)
@@ -16,7 +16,6 @@ struct ldap_client_settings {
 
        struct event *event_parent;
        const struct ssl_settings *ssl_set;
-       const struct ssl_iostream_settings *ssl_ioset;
 };
 
 extern const struct setting_parser_info ldap_client_setting_parser_info;