Mercurial > dovecot > core-2.2
changeset 19393:910656f4b7a0
lib-storage: Create ioloop context for users even if log prefix changing is disabled.
This fixes stats plugin to work with lmtp, imap-urlauth and doveadm-server.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 18 Nov 2015 18:10:46 +0200 |
parents | 52cbfa793147 |
children | 109c23a7412a |
files | src/lib-storage/mail-storage-service.c |
diffstat | 1 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/mail-storage-service.c Wed Nov 18 17:45:35 2015 +0200 +++ b/src/lib-storage/mail-storage-service.c Wed Nov 18 18:10:46 2015 +0200 @@ -779,7 +779,6 @@ if (master_service_get_client_limit(master_service) == 1) i_set_failure_send_prefix(user->log_prefix); - user->ioloop_ctx = io_loop_context_new(current_ioloop); io_loop_context_add_callbacks(user->ioloop_ctx, mail_storage_service_io_activate_user, mail_storage_service_io_deactivate_user, @@ -1342,6 +1341,10 @@ set_keyval(ctx, user, "mail_home", priv.home); } + /* create ioloop context regardless of logging. it's also used by + stats plugin. */ + user->ioloop_ctx = io_loop_context_new(current_ioloop); + if ((user->flags & MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT) == 0) mail_storage_service_init_log(ctx, user, &priv); @@ -1430,11 +1433,13 @@ *_user = NULL; if (user->ioloop_ctx != NULL) { - io_loop_context_remove_callbacks(user->ioloop_ctx, - mail_storage_service_io_activate_user, - mail_storage_service_io_deactivate_user, user); - if (io_loop_get_current_context(current_ioloop) == user->ioloop_ctx) - mail_storage_service_io_deactivate_user(user); + if ((user->flags & MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT) == 0) { + io_loop_context_remove_callbacks(user->ioloop_ctx, + mail_storage_service_io_activate_user, + mail_storage_service_io_deactivate_user, user); + if (io_loop_get_current_context(current_ioloop) == user->ioloop_ctx) + mail_storage_service_io_deactivate_user(user); + } io_loop_context_unref(&user->ioloop_ctx); } settings_parser_deinit(&user->set_parser);