From: Timo Sirainen Date: Tue, 1 Jul 2025 11:06:30 +0000 (+0300) Subject: global: Replace mail service binaries' -a parameter with auth_master_socket_path... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b8cec2cb592316f88607a9369faf566ddb0ed47d;p=thirdparty%2Fdovecot%2Fcore.git global: Replace mail service binaries' -a parameter with auth_master_socket_path setting --- diff --git a/src/imap-urlauth/imap-urlauth.c b/src/imap-urlauth/imap-urlauth.c index 5f1e9beb32..9db0f4c5ac 100644 --- a/src/imap-urlauth/imap-urlauth.c +++ b/src/imap-urlauth/imap-urlauth.c @@ -214,7 +214,6 @@ int main(int argc, char *argv[]) struct login_server_settings login_set; enum master_service_flags service_flags = 0; const char *error = NULL, *username = NULL; - const char *auth_socket_path = "auth-master"; int c; i_zero(&login_set); @@ -234,16 +233,9 @@ int main(int argc, char *argv[]) } master_service = master_service_init("imap-urlauth", service_flags, - &argc, &argv, "a:"); - while ((c = master_getopt(master_service)) > 0) { - switch (c) { - case 'a': - auth_socket_path = optarg; - break; - default: - return FATAL_DEFAULT; - } - } + &argc, &argv, ""); + while ((c = master_getopt(master_service)) > 0) + return FATAL_DEFAULT; master_service_init_log(master_service); if (master_service_settings_read_simple(master_service, &error) < 0) @@ -256,9 +248,14 @@ int main(int argc, char *argv[]) if (imap_urlauth_settings->verbose_proctitle) verbose_proctitle = TRUE; - if (t_abspath(auth_socket_path, &login_set.auth_socket_path, &error) < 0) { - i_fatal("t_abspath(%s) failed: %s", auth_socket_path, error); + const struct master_service_settings *master_set = + master_service_get_service_settings(master_service); + if (t_abspath(master_set->auth_master_socket_path, + &login_set.auth_socket_path, &error) < 0) { + i_fatal("t_abspath(%s) failed: %s", + master_set->auth_master_socket_path, error); } + login_set.callback = login_request_finished; login_set.failure_callback = login_request_failed; login_set.update_proctitle = verbose_proctitle && diff --git a/src/imap/main.c b/src/imap/main.c index 757b31e3b5..5296eeba5a 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -500,7 +500,7 @@ int main(int argc, char *argv[]) * cause client timeouts on login. */ MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES; - const char *username = NULL, *auth_socket_path = "auth-master"; + const char *username = NULL; const char *error; int c; @@ -522,12 +522,9 @@ int main(int argc, char *argv[]) } master_service = master_service_init("imap", service_flags, - &argc, &argv, "a:Dt:u:"); + &argc, &argv, "Dt:u:"); while ((c = master_getopt(master_service)) > 0) { switch (c) { - case 'a': - auth_socket_path = optarg; - break; case 't': if (str_to_uint(optarg, &login_set.postlogin_timeout_secs) < 0 || login_set.postlogin_timeout_secs == 0) @@ -563,8 +560,13 @@ int main(int argc, char *argv[]) verbose_proctitle = !IS_STANDALONE() && getenv(MASTER_VERBOSE_PROCTITLE_ENV) != NULL; - if (t_abspath(auth_socket_path, &login_set.auth_socket_path, &error) < 0) - i_fatal("t_abspath(%s) failed: %s", auth_socket_path, error); + const struct master_service_settings *master_set = + master_service_get_service_settings(master_service); + if (t_abspath(master_set->auth_master_socket_path, + &login_set.auth_socket_path, &error) < 0) { + i_fatal("t_abspath(%s) failed: %s", + master_set->auth_master_socket_path, error); + } if (argv[optind] != NULL) { if (t_abspath(argv[optind], &login_set.postlogin_socket_path, &error) < 0) diff --git a/src/lib-master/master-service-settings.c b/src/lib-master/master-service-settings.c index 144a6804ef..acdeab09e1 100644 --- a/src/lib-master/master-service-settings.c +++ b/src/lib-master/master-service-settings.c @@ -51,6 +51,7 @@ static const struct setting_define master_service_setting_defines[] = { DEF(STR, process_shutdown_filter), DEF(STR, syslog_facility), DEF(STR, stats_writer_socket_path), + DEF(STR, auth_master_socket_path), DEF(STR, dovecot_storage_version), DEF(BOOL, version_ignore), DEF(BOOL, shutdown_clients), @@ -79,6 +80,7 @@ static const struct master_service_settings master_service_default_settings = { .syslog_facility = "mail", .import_environment = ARRAY_INIT, .stats_writer_socket_path = "stats-writer", + .auth_master_socket_path = "auth-master", .dovecot_storage_version = "", .version_ignore = FALSE, .shutdown_clients = TRUE, diff --git a/src/lib-master/master-service-settings.h b/src/lib-master/master-service-settings.h index 89944d7bd0..c69332206e 100644 --- a/src/lib-master/master-service-settings.h +++ b/src/lib-master/master-service-settings.h @@ -27,6 +27,7 @@ struct master_service_settings { const char *process_shutdown_filter; const char *syslog_facility; const char *stats_writer_socket_path; + const char *auth_master_socket_path; const char *dovecot_storage_version; ARRAY_TYPE(const_string) import_environment; bool version_ignore; diff --git a/src/pop3/main.c b/src/pop3/main.c index 3a8791da3d..acb65c31bc 100644 --- a/src/pop3/main.c +++ b/src/pop3/main.c @@ -374,7 +374,7 @@ int main(int argc, char *argv[]) struct login_server_settings login_set; enum master_service_flags service_flags = 0; enum mail_storage_service_flags storage_service_flags = 0; - const char *username = NULL, *auth_socket_path = "auth-master"; + const char *username = NULL; const char *error; int c; @@ -403,12 +403,9 @@ int main(int argc, char *argv[]) storage_service_flags |= MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES; master_service = master_service_init("pop3", service_flags, - &argc, &argv, "a:t:u:"); + &argc, &argv, "t:u:"); while ((c = master_getopt(master_service)) > 0) { switch (c) { - case 'a': - auth_socket_path = optarg; - break; case 't': if (str_to_uint(optarg, &login_set.postlogin_timeout_secs) < 0 || login_set.postlogin_timeout_secs == 0) @@ -427,9 +424,14 @@ int main(int argc, char *argv[]) if (master_service_settings_read_simple(master_service, &error) < 0) i_fatal("%s", error); - if (t_abspath(auth_socket_path, &login_set.auth_socket_path, &error) < 0) { - i_fatal("t_abspath(%s) failed: %s", auth_socket_path, error); + const struct master_service_settings *master_set = + master_service_get_service_settings(master_service); + if (t_abspath(master_set->auth_master_socket_path, + &login_set.auth_socket_path, &error) < 0) { + i_fatal("t_abspath(%s) failed: %s", + master_set->auth_master_socket_path, error); } + if (argv[optind] != NULL) { if (t_abspath(argv[optind], &login_set.postlogin_socket_path, &error) < 0) { i_fatal("t_abspath(%s) failed: %s", argv[optind], error); diff --git a/src/submission/main.c b/src/submission/main.c index f9d7584da5..62f6b07d0e 100644 --- a/src/submission/main.c +++ b/src/submission/main.c @@ -355,7 +355,7 @@ int main(int argc, char *argv[]) enum mail_storage_service_flags storage_service_flags = 0; struct smtp_server_settings smtp_server_set; struct smtp_client_settings smtp_client_set; - const char *username = NULL, *auth_socket_path = "auth-master"; + const char *username = NULL; const char *error; int c; @@ -377,12 +377,9 @@ int main(int argc, char *argv[]) } master_service = master_service_init("submission", service_flags, - &argc, &argv, "a:Dt:u:"); + &argc, &argv, "Dt:u:"); while ((c = master_getopt(master_service)) > 0) { switch (c) { - case 'a': - auth_socket_path = optarg; - break; case 't': if (str_to_uint(optarg, &login_set.postlogin_timeout_secs) < 0 || @@ -402,11 +399,6 @@ int main(int argc, char *argv[]) } } - if (t_abspath(auth_socket_path, &login_set.auth_socket_path, - &error) < 0) { - i_fatal("t_abspath(%s) failed: %s", auth_socket_path, - error); - } if (argv[optind] != NULL) { if (t_abspath(argv[optind], &login_set.postlogin_socket_path, &error) < 0) { @@ -426,6 +418,14 @@ int main(int argc, char *argv[]) if (master_service_settings_read_simple(master_service, &error) < 0) i_fatal("%s", error); + const struct master_service_settings *master_set = + master_service_get_service_settings(master_service); + if (t_abspath(master_set->auth_master_socket_path, + &login_set.auth_socket_path, &error) < 0) { + i_fatal("t_abspath(%s) failed: %s", + master_set->auth_master_socket_path, error); + } + storage_service = mail_storage_service_init(master_service, storage_service_flags);