From: Timo Sirainen Date: Wed, 12 Jan 2022 15:25:23 +0000 (+0200) Subject: lib-master: master_service_anvil_connect() - Add support for alt usernames X-Git-Tag: 2.4.0~4518 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fbcf6408fe358e9fe6578a44cb0475b28d8e9a96;p=thirdparty%2Fdovecot%2Fcore.git lib-master: master_service_anvil_connect() - Add support for alt usernames --- diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index af14b92e7c..2519fd36a3 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -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)); } diff --git a/src/lib-master/master-service.h b/src/lib-master/master-service.h index 039bc33c5f..a624e6664d 100644 --- a/src/lib-master/master-service.h +++ b/src/lib-master/master-service.h @@ -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; };