#include "time-util.h"
#include "var-expand.h"
#include "master-service.h"
+#include "master-service-settings.h"
#include "imap-resp-code.h"
#include "imap-util.h"
#include "imap-urlauth.h"
#include "mail-error.h"
+#include "smtp-submit-settings.h"
#include "mail-namespace.h"
#include "mail-storage-service.h"
#include "mail-autoexpunge.h"
imap_client_count--;
DLLIST_REMOVE(&imap_clients, client);
+ master_service_settings_free(client->set);
+ master_service_settings_free(client->smtp_set);
event_unref(&client->event);
i_free(client->last_cmd_name);
pool_unref(&client->pool);
.defaults = &imap_default_settings,
.struct_size = sizeof(struct imap_settings),
+ .pool_offset1 = 1 + offsetof(struct imap_settings, pool),
.check_func = imap_settings_verify,
.dependencies = imap_setting_dependencies
};
#include "settings-parser.h"
#include "master-interface.h"
#include "master-service.h"
+#include "master-service-settings.h"
#include "master-admin-client.h"
#include "login-server.h"
#include "mail-user.h"
struct mail_user *mail_user;
struct client *client;
struct imap_settings *imap_set;
- struct smtp_submit_settings *smtp_set;
+ struct smtp_submit_settings *smtp_set = NULL;
struct event *event;
event = event_create(NULL);
restrict_access_allow_coredumps(TRUE);
- smtp_set = settings_parser_get_root_set(mail_user->set_parser,
- &smtp_submit_setting_parser_info);
- imap_set = settings_parser_get_root_set(mail_user->set_parser,
- &imap_setting_parser_info);
+ if (master_service_settings_parser_get(mail_user->event,
+ mail_user->set_parser,
+ &smtp_submit_setting_parser_info,
+ MASTER_SERVICE_SETTINGS_GET_FLAG_NO_EXPAND,
+ &smtp_set, error_r) < 0 ||
+ master_service_settings_parser_get(mail_user->event,
+ mail_user->set_parser,
+ &imap_setting_parser_info,
+ MASTER_SERVICE_SETTINGS_GET_FLAG_NO_EXPAND,
+ &imap_set, error_r) < 0) {
+ master_service_settings_free(smtp_set);
+ mail_user_deinit(&mail_user);
+ event_unref(&event);
+ return -1;
+ }
if (imap_set->verbose_proctitle)
verbose_proctitle = TRUE;