struct lmtp_local_deliver_context lldctx;
struct mail_user *rcpt_user;
const struct mail_storage_service_input *input;
- const struct mail_storage_settings *mail_set;
+ const struct lmtp_pre_mail_settings *pre_mail_set;
struct smtp_proxy_data proxy_data;
struct mail_namespace *ns;
const char *error, *username;
username = t_strdup(input->username);
if (settings_get(mail_storage_service_user_get_event(service_user),
- &mail_storage_setting_parser_info,
+ &lmtp_pre_mail_setting_parser_info,
SETTINGS_GET_FLAG_NO_EXPAND,
- &mail_set, &error) < 0) {
+ &pre_mail_set, &error) < 0) {
e_error(rcpt->event, "%s", error);
smtp_server_recipient_reply(rcpt, 451, "4.3.0",
"Temporary internal error");
smtp_server_connection_get_proxy_data
(client->conn, &proxy_data);
if (proxy_data.timeout_secs > 0 &&
- (mail_set->mail_max_lock_timeout == 0 ||
- mail_set->mail_max_lock_timeout > proxy_data.timeout_secs)) {
+ (pre_mail_set->mail_max_lock_timeout == 0 ||
+ pre_mail_set->mail_max_lock_timeout > proxy_data.timeout_secs)) {
/* set lock timeout waits to be less than when proxy has
advertised that it's going to timeout the connection.
this avoids duplicate deliveries in case the delivery
settings_override(set_instance, "*/mail_max_lock_timeout",
value, SETTINGS_OVERRIDE_TYPE_CODE);
}
- settings_free(mail_set);
+ settings_free(pre_mail_set);
i_zero(&lldctx);
lldctx.session_id = lrcpt->session_id;
{ NULL, NULL }
};
+#undef DEF
+#define DEF(type, name) \
+ SETTING_DEFINE_STRUCT_##type(#name, name, struct lmtp_pre_mail_settings)
+
+static const struct setting_define lmtp_pre_mail_setting_defines[] = {
+ DEF(TIME, mail_max_lock_timeout),
+
+ SETTING_DEFINE_LIST_END
+};
+
+static const struct lmtp_pre_mail_settings lmtp_pre_mail_default_settings = {
+ .mail_max_lock_timeout = 0,
+};
+
+const struct setting_parser_info lmtp_pre_mail_setting_parser_info = {
+ .name = "lmtp_pre_mail",
+
+ .defines = lmtp_pre_mail_setting_defines,
+ .defaults = &lmtp_pre_mail_default_settings,
+
+ .struct_size = sizeof(struct lmtp_pre_mail_settings),
+ .pool_offset1 = 1 + offsetof(struct lmtp_pre_mail_settings, pool),
+};
+
#undef DEF
#define DEF(type, name) \
SETTING_DEFINE_STRUCT_##type(#name, name, struct lmtp_settings)