]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Fix handling auth_master_user_separator setting
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 10 Feb 2022 15:12:09 +0000 (17:12 +0200)
committermartti.rannanjarvi <martti.rannanjarvi@open-xchange.com>
Wed, 5 Oct 2022 15:01:31 +0000 (15:01 +0000)
It was actually using a separate master_user_separator setting, causing
logins based on auth_master_user_separator to be hashed to wrong backends.

src/director/director-settings.c
src/director/director-settings.h
src/director/login-connection.c

index f74d68354d664a16d31f08b7d75e806c39066989..10f2f9ec51f64ea309dc6e9be53651317a4bea5f 100644 (file)
@@ -64,7 +64,7 @@ struct service_settings director_service_settings = {
        SETTING_DEFINE_STRUCT_##type(#name, name, struct director_settings)
 
 static const struct setting_define director_setting_defines[] = {
-       DEF(STR, master_user_separator),
+       DEF(STR, auth_master_user_separator),
 
        DEF(STR, director_servers),
        DEF(STR, director_mail_servers),
@@ -82,7 +82,7 @@ static const struct setting_define director_setting_defines[] = {
 };
 
 const struct director_settings director_default_settings = {
-       .master_user_separator = "",
+       .auth_master_user_separator = "",
 
        .director_servers = "",
        .director_mail_servers = "",
index 363d48c1426f3ad6018d7ccf20495f9f204fbf59..2c5fff65ec1f0c2f4301d70a6cee5c6276ff8252 100644 (file)
@@ -4,7 +4,7 @@
 #include "net.h"
 
 struct director_settings {
-       const char *master_user_separator;
+       const char *auth_master_user_separator;
 
        const char *director_servers;
        const char *director_mail_servers;
index 78de3b9372a87cecd87afa2e18bd6bdae3ed4c2e..81560782258f712ff0271a37292085f901ded0d2 100644 (file)
@@ -247,11 +247,11 @@ static void auth_input_line(const char *line, void *context)
                login_connection_send_line(conn, line);
                return;
        }
-       if (*conn->dir->set->master_user_separator != '\0') {
+       if (*conn->dir->set->auth_master_user_separator != '\0') {
                /* with master user logins we still want to use only the
                   login username */
                username = t_strcut(username,
-                                   *conn->dir->set->master_user_separator);
+                                   *conn->dir->set->auth_master_user_separator);
        }
 
        /* we need to add the host. the lookup might be asynchronous */