#include "var-expand.h"
#include "restrict-access.h"
#include "master-service.h"
+#include "master-service-settings.h"
#include "master-interface.h"
#include "imap-urlauth-worker-client.h"
client = i_new(struct client, 1);
client->set = set;
+ pool_ref(client->set->pool);
client->event = event_create(NULL);
event_set_forced_debug(client->event, set->mail_debug);
connection_deinit(&client->conn);
event_unref(&client->event);
+ master_service_settings_free(client->set);
i_free(client->username);
i_free(client->service);
.defaults = &imap_urlauth_default_settings,
.struct_size = sizeof(struct imap_urlauth_settings),
+ .pool_offset1 = 1 + offsetof(struct imap_urlauth_settings, pool),
.dependencies = imap_urlauth_setting_dependencies
};
struct mail_user_settings;
struct imap_urlauth_settings {
+ pool_t pool;
const char *base_dir;
bool mail_debug;
.defaults = &imap_urlauth_worker_default_settings,
.struct_size = sizeof(struct imap_urlauth_worker_settings),
+ .pool_offset1 = 1 + offsetof(struct imap_urlauth_worker_settings, pool),
.dependencies = imap_urlauth_worker_setting_dependencies
};
struct mail_user_settings;
struct imap_urlauth_worker_settings {
+ pool_t pool;
bool verbose_proctitle;
/* imap_urlauth: */
#include "settings-parser.h"
#include "connection.h"
#include "master-service.h"
+#include "master-service-settings.h"
#include "master-interface.h"
#include "mail-storage.h"
#include "mail-storage-service.h"
connection_deinit(&client->conn_ctrl);
connection_deinit(&client->conn);
event_unref(&client->event);
+ master_service_settings_free(client->set);
i_free(client);
imap_urlauth_worker_refresh_proctitle();
return 1;
}
+ if (master_service_settings_parser_get(client->event,
+ mail_user->set_parser,
+ &imap_urlauth_worker_setting_parser_info,
+ MASTER_SERVICE_SETTINGS_GET_FLAG_NO_EXPAND,
+ &set, &error) < 0) {
+ e_error(client->event, "user %s: %s", input.username, error);
+ client_abort(client, "Session aborted: Failed to get settings");
+ return 0;
+ }
+
event_set_forced_debug(client->event, mail_user->mail_debug);
/* drop privileges */
restrict_access_allow_coredumps(TRUE);
- set = settings_parser_get_root_set(mail_user->set_parser,
- &imap_urlauth_worker_setting_parser_info);
-
if (set->verbose_proctitle) {
verbose_proctitle = TRUE;
imap_urlauth_worker_refresh_proctitle();
i_zero(&input);
input.roots = set_roots;
input.service = "imap-urlauth";
+ input.disable_check_settings = TRUE;
if (master_service_settings_read(master_service, &input, &output,
&error) < 0)
i_fatal("%s", error);
imap_urlauth_settings =
- master_service_settings_get_root_set(master_service,
+ master_service_settings_get_or_fatal(NULL,
&imap_urlauth_setting_parser_info);
if (imap_urlauth_settings->verbose_proctitle)
if (login_server != NULL)
login_server_deinit(&login_server);
+ master_service_settings_free(imap_urlauth_settings);
master_service_deinit(&master_service);
return 0;
}