diff --git a/src/lib-sieve/storage/ldap/Makefile.am b/src/lib-sieve/storage/ldap/Makefile.am
index 86df92c51c78d297cf2d929a3e998e00805d96ff..9ec5b25af5f412780dca9f7d2560001757da5d0d 100644
--- a/src/lib-sieve/storage/ldap/Makefile.am
+++ b/src/lib-sieve/storage/ldap/Makefile.am
@@ -19,6 +19,7 @@ libsieve_storage_ldap_la_LIBADD = $(LDAP_LIBS)
 
 noinst_HEADERS = \
 	sieve-ldap-db.h \
+	sieve-ldap-storage-settings.h \
 	sieve-ldap-storage.h
 
 if LDAP_PLUGIN
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
new file mode 100644
index 0000000000000000000000000000000000000000..29c3495ba5f00fb493ab8994281629a00671dd48
--- /dev/null
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage-settings.h
@@ -0,0 +1,39 @@
+#ifndef SIEVE_LDAP_STORAGE_SETTINGS_H
+#define SIEVE_LDAP_STORAGE_SETTINGS_H
+
+struct sieve_ldap_storage_settings {
+	const char *hosts;
+	const char *uris;
+	const char *dn;
+	const char *dnpass;
+
+	bool tls;
+	bool sasl_bind;
+	const char *sasl_mech;
+	const char *sasl_realm;
+	const char *sasl_authz_id;
+
+	const char *tls_ca_cert_file;
+	const char *tls_ca_cert_dir;
+	const char *tls_cert_file;
+	const char *tls_key_file;
+	const char *tls_cipher_suite;
+	const char *tls_require_cert;
+
+	const char *deref;
+	const char *scope;
+	const char *base;
+	unsigned int ldap_version;
+
+	const char *ldaprc_path;
+	const char *debug_level;
+
+	const char *sieve_ldap_script_attr;
+	const char *sieve_ldap_mod_attr;
+	const char *sieve_ldap_filter;
+
+	/* ... */
+	int ldap_deref, ldap_scope, ldap_tls_require_cert;
+};
+
+#endif
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
index 36a66a42e0c7fcef1cafdda5011aa17eab31b7ab..a0974002e03d8b01657aece1d4cf9381f75b5574 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage.c
@@ -7,6 +7,7 @@
 #include "sieve-common.h"
 
 #include "sieve-ldap-storage.h"
+#include "sieve-ldap-storage-settings.h"
 
 #if defined(SIEVE_BUILTIN_LDAP) || defined(PLUGIN_BUILD)
 
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-storage.h b/src/lib-sieve/storage/ldap/sieve-ldap-storage.h
index 978ad0e2f911386bf37f3bc7c459b7d84044e9c5..3427e319333e764bcc53cd6609f68d4ad070db9c 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-storage.h
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-storage.h
@@ -9,6 +9,7 @@
 
 #if defined(SIEVE_BUILTIN_LDAP) || defined(PLUGIN_BUILD)
 
+#include "sieve-ldap-storage-settings.h"
 #include "sieve-ldap-db.h"
 
 struct sieve_ldap_storage;
@@ -17,41 +18,6 @@ struct sieve_ldap_storage;
  * LDAP settings
  */
 
-struct sieve_ldap_storage_settings {
-	const char *hosts;
-	const char *uris;
-	const char *dn;
-	const char *dnpass;
-
-	bool tls;
-	bool sasl_bind;
-	const char *sasl_mech;
-	const char *sasl_realm;
-	const char *sasl_authz_id;
-
-	const char *tls_ca_cert_file;
-	const char *tls_ca_cert_dir;
-	const char *tls_cert_file;
-	const char *tls_key_file;
-	const char *tls_cipher_suite;
-	const char *tls_require_cert;
-
-	const char *deref;
-	const char *scope;
-	const char *base;
-	unsigned int ldap_version;
-
-	const char *ldaprc_path;
-	const char *debug_level;
-
-	const char *sieve_ldap_script_attr;
-	const char *sieve_ldap_mod_attr;
-	const char *sieve_ldap_filter;
-
-	/* ... */
-	int ldap_deref, ldap_scope, ldap_tls_require_cert;
-};
-
 int sieve_ldap_storage_read_settings(struct sieve_ldap_storage *lstorage,
 				     const char *config_path);