From: Marco Bettini Date: Tue, 12 Mar 2024 14:13:37 +0000 (+0000) Subject: auth: struct ldap_settings - Move to db-ldap-settings.[ch] [BUILD-BROKEN] X-Git-Tag: 2.4.1~783 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=495fcfd67be7479657dfa73ee59845b2ee318958;p=thirdparty%2Fdovecot%2Fcore.git auth: struct ldap_settings - Move to db-ldap-settings.[ch] [BUILD-BROKEN] (build broken until next commits) --- diff --git a/src/auth/Makefile.am b/src/auth/Makefile.am index c4c5fb3578..9c4b1112d4 100644 --- a/src/auth/Makefile.am +++ b/src/auth/Makefile.am @@ -72,7 +72,7 @@ auth_LDADD = $(auth_libs) $(LIBDOVECOT) $(AUTH_LIBS) $(BINARY_LDFLAGS) $(AUTH_LU auth_DEPENDENCIES = $(auth_libs) $(LIBDOVECOT_DEPS) auth_SOURCES = main.c -ldap_sources = db-ldap.c passdb-ldap.c userdb-ldap.c +ldap_sources = db-ldap.c db-ldap-settings.c passdb-ldap.c userdb-ldap.c lua_sources = db-lua.c passdb-lua.c userdb-lua.c libauth_la_DEPENDENCIES = $(LIBDOVECOT_DEPS) @@ -155,6 +155,7 @@ headers = \ auth-worker-connection.h \ auth-worker-server.h \ db-ldap.h \ + db-ldap-settings.h \ db-sql.h \ db-passwd-file.h \ db-oauth2.h \ diff --git a/src/auth/db-ldap-settings.c b/src/auth/db-ldap-settings.c new file mode 100644 index 0000000000..cdb7d3daeb --- /dev/null +++ b/src/auth/db-ldap-settings.c @@ -0,0 +1,84 @@ +/* Copyright (c) 2005-2024 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "settings.h" +#include "db-ldap-settings.h" + +#undef DEF +/* +#define DEF(type, name) \ + SETTING_DEFINE_STRUCT_##type("passdb_"#name, name, struct auth_passdb_settings) +*/ +#define DEF_STR(name) DEF_STRUCT_STR(name, ldap_settings) +#define DEF_INT(name) DEF_STRUCT_INT(name, ldap_settings) +#define DEF_BOOL(name) DEF_STRUCT_BOOL(name, ldap_settings) + +static struct setting_def ldap_setting_defs[] = { + DEF_STR(hosts), + DEF_STR(uris), + DEF_STR(dn), + DEF_STR(dnpass), + DEF_BOOL(auth_bind), + DEF_STR(auth_bind_userdn), + DEF_BOOL(tls), + DEF_BOOL(sasl_bind), + DEF_STR(sasl_mech), + DEF_STR(sasl_realm), + DEF_STR(sasl_authz_id), + DEF_STR(tls_ca_cert_file), + DEF_STR(tls_ca_cert_dir), + DEF_STR(tls_cert_file), + DEF_STR(tls_key_file), + DEF_STR(tls_cipher_suite), + DEF_STR(tls_require_cert), + DEF_STR(deref), + DEF_STR(scope), + DEF_STR(base), + DEF_INT(ldap_version), + DEF_STR(debug_level), + DEF_STR(ldaprc_path), + DEF_STR(user_attrs), + DEF_STR(user_filter), + DEF_STR(pass_attrs), + DEF_STR(pass_filter), + DEF_STR(iterate_attrs), + DEF_STR(iterate_filter), + DEF_STR(default_pass_scheme), + DEF_BOOL(blocking), + + { 0, NULL, 0 } +}; + +static struct ldap_settings ldap_default_settings = { + .hosts = NULL, + .uris = NULL, + .dn = NULL, + .dnpass = NULL, + .auth_bind = FALSE, + .auth_bind_userdn = NULL, + .tls = FALSE, + .sasl_bind = FALSE, + .sasl_mech = NULL, + .sasl_realm = NULL, + .sasl_authz_id = NULL, + .tls_ca_cert_file = NULL, + .tls_ca_cert_dir = NULL, + .tls_cert_file = NULL, + .tls_key_file = NULL, + .tls_cipher_suite = NULL, + .tls_require_cert = NULL, + .deref = "never", + .scope = "subtree", + .base = NULL, + .ldap_version = 3, + .debug_level = "0", + .ldaprc_path = "", + .user_attrs = "homeDirectory=home,uidNumber=uid,gidNumber=gid", + .user_filter = "(&(objectClass=posixAccount)(uid=%u))", + .pass_attrs = "uid=user,userPassword=password", + .pass_filter = "(&(objectClass=posixAccount)(uid=%u))", + .iterate_attrs = "uid=user", + .iterate_filter = "(objectClass=posixAccount)", + .default_pass_scheme = "crypt", + .blocking = FALSE +}; diff --git a/src/auth/db-ldap-settings.h b/src/auth/db-ldap-settings.h new file mode 100644 index 0000000000..8fe2e86319 --- /dev/null +++ b/src/auth/db-ldap-settings.h @@ -0,0 +1,49 @@ +#ifndef DB_LDAP_SETTINGS_H +#define DB_LDAP_SETTINGS_H + +struct ldap_settings { + const char *hosts; + const char *uris; + const char *dn; + const char *dnpass; + bool auth_bind; + const char *auth_bind_userdn; + + 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 *user_attrs; + const char *user_filter; + const char *pass_attrs; + const char *pass_filter; + const char *iterate_attrs; + const char *iterate_filter; + + const char *default_pass_scheme; + bool blocking; + + /* ... */ + int ldap_deref, ldap_scope, ldap_tls_require_cert_parsed; + uid_t uid; + gid_t gid; +}; + +#endif diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index 7a75354d40..2fdabf9efd 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -87,80 +87,6 @@ struct db_ldap_sasl_bind_context { const char *authzid; }; -#define DEF_STR(name) DEF_STRUCT_STR(name, ldap_settings) -#define DEF_INT(name) DEF_STRUCT_INT(name, ldap_settings) -#define DEF_BOOL(name) DEF_STRUCT_BOOL(name, ldap_settings) - -static struct setting_def setting_defs[] = { - DEF_STR(hosts), - DEF_STR(uris), - DEF_STR(dn), - DEF_STR(dnpass), - DEF_BOOL(auth_bind), - DEF_STR(auth_bind_userdn), - DEF_BOOL(tls), - DEF_BOOL(sasl_bind), - DEF_STR(sasl_mech), - DEF_STR(sasl_realm), - DEF_STR(sasl_authz_id), - DEF_STR(tls_ca_cert_file), - DEF_STR(tls_ca_cert_dir), - DEF_STR(tls_cert_file), - DEF_STR(tls_key_file), - DEF_STR(tls_cipher_suite), - DEF_STR(tls_require_cert), - DEF_STR(deref), - DEF_STR(scope), - DEF_STR(base), - DEF_INT(ldap_version), - DEF_STR(debug_level), - DEF_STR(ldaprc_path), - DEF_STR(user_attrs), - DEF_STR(user_filter), - DEF_STR(pass_attrs), - DEF_STR(pass_filter), - DEF_STR(iterate_attrs), - DEF_STR(iterate_filter), - DEF_STR(default_pass_scheme), - DEF_BOOL(blocking), - - { 0, NULL, 0 } -}; - -static struct ldap_settings default_ldap_settings = { - .hosts = NULL, - .uris = NULL, - .dn = NULL, - .dnpass = NULL, - .auth_bind = FALSE, - .auth_bind_userdn = NULL, - .tls = FALSE, - .sasl_bind = FALSE, - .sasl_mech = NULL, - .sasl_realm = NULL, - .sasl_authz_id = NULL, - .tls_ca_cert_file = NULL, - .tls_ca_cert_dir = NULL, - .tls_cert_file = NULL, - .tls_key_file = NULL, - .tls_cipher_suite = NULL, - .tls_require_cert = NULL, - .deref = "never", - .scope = "subtree", - .base = NULL, - .ldap_version = 3, - .debug_level = "0", - .ldaprc_path = "", - .user_attrs = "homeDirectory=home,uidNumber=uid,gidNumber=gid", - .user_filter = "(&(objectClass=posixAccount)(uid=%u))", - .pass_attrs = "uid=user,userPassword=password", - .pass_filter = "(&(objectClass=posixAccount)(uid=%u))", - .iterate_attrs = "uid=user", - .iterate_filter = "(objectClass=posixAccount)", - .default_pass_scheme = "crypt", - .blocking = FALSE -}; - static struct ldap_connection *ldap_connections = NULL; static int db_ldap_bind(struct ldap_connection *conn); diff --git a/src/auth/db-ldap.h b/src/auth/db-ldap.h index bb8a78afd9..e0a161a41d 100644 --- a/src/auth/db-ldap.h +++ b/src/auth/db-ldap.h @@ -20,6 +20,7 @@ #define DB_LDAP_IDLE_RECONNECT_SECS 60 #include +#include "db-ldap-settings.h" struct auth_request; struct ldap_connection; @@ -29,51 +30,6 @@ typedef void db_search_callback_t(struct ldap_connection *conn, struct ldap_request *request, LDAPMessage *res); -struct ldap_settings { - const char *hosts; - const char *uris; - const char *dn; - const char *dnpass; - bool auth_bind; - const char *auth_bind_userdn; - - 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 *user_attrs; - const char *user_filter; - const char *pass_attrs; - const char *pass_filter; - const char *iterate_attrs; - const char *iterate_filter; - - const char *default_pass_scheme; - bool blocking; - - /* ... */ - int ldap_deref, ldap_scope, ldap_tls_require_cert_parsed; - uid_t uid; - gid_t gid; -}; - enum ldap_request_type { LDAP_REQUEST_TYPE_SEARCH, LDAP_REQUEST_TYPE_BIND