#include "mail-storage.h"
#include "mail-storage-service.h"
#include "main.h"
+#include "lmtp-settings.h"
#include "lmtp-proxy.h"
#include "commands.h"
#include "client.h"
{
struct mail_storage_service_input input;
const char *error;
- void **sets;
memset(&input, 0, sizeof(input));
input.module = input.service = "lmtp";
&error) < 0)
i_fatal("%s", error);
- sets = master_service_settings_get_others(master_service);
- client->set = sets[1];
- client->lmtp_set = sets[2];
+ lmtp_settings_dup(client->pool, &client->lmtp_set, &client->set);
}
static void client_generate_session_id(struct client *client)
#include "buffer.h"
#include "settings-parser.h"
#include "service-settings.h"
+#include "master-service.h"
#include "master-service-settings.h"
#include "lda-settings.h"
#include "lmtp-settings.h"
MEMBER(check_func) NULL,
MEMBER(dependencies) lmtp_setting_dependencies
};
+
+void lmtp_settings_dup(pool_t pool, const struct lmtp_settings **lmtp_set_r,
+ const struct lda_settings **lda_set_r)
+{
+ void **sets;
+
+ sets = master_service_settings_get_others(master_service);
+ *lda_set_r = settings_dup(&lda_setting_parser_info, sets[1], pool);
+ *lmtp_set_r = settings_dup(&lmtp_setting_parser_info, sets[2], pool);
+}
#ifndef LMTP_SETTINGS_H
#define LMTP_SETTINGS_H
+struct lda_settings;
+struct lmtp_settings;
+
struct lmtp_settings {
bool lmtp_proxy;
};
extern const struct setting_parser_info lmtp_setting_parser_info;
+void lmtp_settings_dup(pool_t pool, const struct lmtp_settings **lmtp_set_r,
+ const struct lda_settings **lda_set_r);
+
#endif