From 0e63438aa0f60c2407b4af84251b5b22bfd9f322 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Thu, 23 Aug 2018 20:29:58 +0300 Subject: [PATCH] submission: Reorder initialization code login_set socket paths get invalidated when master_service_init_finish is called, so we need to run the code that uses them before this. --- src/submission/main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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); } -- 2.47.3