diff --git a/configure.ac b/configure.ac index ff074b6088f079f09447dc2613ac5ac5d859143b..f7e262fb5f069a0d114e7ef6628d038afa6e4f41 100644 --- a/configure.ac +++ b/configure.ac @@ -107,9 +107,12 @@ have_ldap=no if test $want_ldap != no; then AC_CHECK_LIB(ldap, ldap_init, [ AC_CHECK_HEADER(ldap.h, [ - AC_CHECK_LIB(ldap, ldap_initialize, [ - AC_DEFINE(LDAP_HAVE_INITIALIZE,, [Define if you have ldap_initialize]) - ]) + AC_CHECK_LIB(ldap, ldap_initialize, :, [ + AC_MSG_ERROR([ + cannot build with LDAP support: function ldap_initialize() not found + (OpenLDAP >= 2.4 required) + ]) + ], $LDAP_LIBS) AC_CHECK_LIB(ldap, ldap_start_tls_s, [ AC_DEFINE(LDAP_HAVE_START_TLS_S,, [Define if you have ldap_start_tls_s]) ]) diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c index 1e783c36235cd7beab6db4bc45e94f4c71571936..9c412f81a56d7e366afd8c8c38d93d470dcae409 100644 --- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c +++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c @@ -260,9 +260,7 @@ static int db_ldap_connect_finish(struct ldap_connection *conn, int ret) if (ret == LDAP_SERVER_DOWN) { e_error(storage->event, "db: " - "Can't connect to server: %s", - *set->uris != '\0' ? - set->uris : set->hosts); + "Can't connect to server: %s", set->uris); return -1; } if (ret != LDAP_SUCCESS) { @@ -754,24 +752,10 @@ int sieve_ldap_db_connect(struct ldap_connection *conn) i_gettimeofday(&start); i_assert(conn->pending_count == 0); if (conn->ld == NULL) { - if (*set->uris != '\0') { -#ifdef LDAP_HAVE_INITIALIZE - if (ldap_initialize(&conn->ld, - set->uris) != LDAP_SUCCESS) - conn->ld = NULL; -#else - e_error(storage->event, "db: " - "Your LDAP library doesn't support " - "'uris' setting, use 'hosts' instead."); - return -1; -#endif - } else - conn->ld = ldap_init(set->hosts, LDAP_PORT); - - if (conn->ld == NULL) { + if (ldap_initialize(&conn->ld, set->uris) != LDAP_SUCCESS) { e_error(storage->event, "db: " - "ldap_init() failed with hosts: %s", - set->hosts); + "ldap_init() failed with uris: %s", + set->uris); return -1; } 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 7324eb1d4bcf037e24450c55703bdbc466eefdab..f80dcd66e34e72751162120169ea6d99de06caba 100644 --- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c +++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.c @@ -25,7 +25,6 @@ static bool sieve_ldap_settings_check(void *_set, pool_t pool, const char **error_r); static const struct setting_define sieve_ldap_setting_defines[] = { - DEF(STR, hosts), DEF(STR, uris), DEF(STR, dn), DEF(STR, dnpass), @@ -51,7 +50,6 @@ static const struct setting_define sieve_ldap_setting_defines[] = { }; const struct sieve_ldap_settings sieve_ldap_default_settings = { - .hosts = "", .uris = "", .dn = "", .dnpass = "", 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 420a405569806c7f6c36d67c02ead2333201af38..21038342ed72a2515459fce0e9a405fe8958d90d 100644 --- a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h +++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h @@ -4,7 +4,6 @@ struct sieve_ldap_settings { pool_t pool; - const char *hosts; const char *uris; const char *dn; const char *dnpass; diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c index 38edfef3a068f2a23939709a74a3f9ccc4764ec0..3777448d03c45b8633363fcaabae6d044ff7f36a 100644 --- a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c +++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c @@ -60,7 +60,7 @@ sieve_ldap_storage_init(struct sieve_storage *storage) sieve_storage_set_critical(storage, "%s", error); return -1; } - if (*ldap_set->uris == '\0' && *ldap_set->hosts == '\0') { + if (*ldap_set->uris == '\0') { sieve_storage_set_critical(storage, "sieve_script %s { ldap_uris / ldap_hosts } not set", storage->name);