]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: master_service_anvil_connect() - Add support for alt usernames
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 12 Jan 2022 15:25:23 +0000 (17:25 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 8 Feb 2022 09:48:24 +0000 (10:48 +0100)
src/lib-master/master-service.c
src/lib-master/master-service.h

index af14b92e7c067abcd839286bc5f0713d4be1e5c3..2519fd36a3f45416696bd84bdb656c1260526855 100644 (file)
@@ -978,6 +978,17 @@ bool master_service_anvil_connect(struct master_service *service,
                str_append_c(cmd, 'S');
        else
                str_append_c(cmd, 'A');
+       if (session->alt_usernames != NULL) {
+               string_t *alt_usernames = t_str_new(64);
+               for (unsigned int i = 0; session->alt_usernames[i] != NULL; i++) {
+                       if (i > 0)
+                               str_append_c(alt_usernames, '\t');
+                       str_append_tabescaped(alt_usernames,
+                                             session->alt_usernames[i]);
+               }
+               str_append_c(cmd, '\t');
+               str_append_tabescaped(cmd, str_c(alt_usernames));
+       }
        str_append_c(cmd, '\n');
        return master_service_anvil_send(service, str_c(cmd));
 }
index 039bc33c5fb887f1078d0b62ddbd87aa9bffb1a2..a624e6664dea1bfec73e395097a174d9c47120d2 100644 (file)
@@ -95,6 +95,8 @@ struct master_service_connection {
 
 struct master_service_anvil_session {
        const char *username;
+       /* NULL-terminated array of (field, value) pairs */
+       const char *const *alt_usernames;
        const char *service_name;
        struct ip_addr ip;
 };