diff --git a/src/submission/main.c b/src/submission/main.c index 737ef32184..6b7b8392ac 100644 --- a/src/submission/main.c +++ b/src/submission/main.c @@ -341,7 +341,6 @@ int main(int argc, char *argv[]) login_set.callback = login_client_connected; login_set.failure_callback = login_client_failed; - master_service_init_finish(master_service); master_service_set_die_callback(master_service, submission_die); storage_service = @@ -363,6 +362,13 @@ int main(int argc, char *argv[]) smtp_client_set.debug = submission_debug; smtp_client = smtp_client_init(&smtp_client_set); + if (!IS_STANDALONE()) + master_login = master_login_init(master_service, &login_set); + + master_service_init_finish(master_service); + /* NOTE: login_set.*_socket_path are now invalid due to data stack + having been freed */ + /* fake that we're running, so we know if client was destroyed while handling its initial input */ io_loop_set_running(current_ioloop); @@ -372,7 +378,6 @@ int main(int argc, char *argv[]) main_stdio_run(username); } T_END; } else { - master_login = master_login_init(master_service, &login_set); io_loop_set_running(current_ioloop); }