-I$(top_srcdir)/src/lib-dict \
-I$(top_srcdir)/src/lib-master \
-I$(top_srcdir)/src/lib-mail \
+ -I$(top_srcdir)/src/lib-lda \
-I$(top_srcdir)/src/lib-imap \
-I$(top_srcdir)/src/lib-imap-urlauth \
-I$(top_srcdir)/src/lib-imap-storage \
imap_LDADD = \
../lib-imap-urlauth/libimap-urlauth.la \
+ $(LIBDOVECOT_LDA) \
$(LIBDOVECOT_STORAGE) \
$(LIBDOVECOT)
imap_DEPENDENCIES = \
../lib-imap-urlauth/libimap-urlauth.la \
+ $(LIBDOVECOT_LDA) \
$(LIBDOVECOT_STORAGE_DEPS) \
$(LIBDOVECOT_DEPS)
struct client *client_create(int fd_in, int fd_out, const char *session_id,
struct mail_user *user,
struct mail_storage_service_user *service_user,
- const struct imap_settings *set)
+ const struct imap_settings *set,
+ const struct lda_settings *lda_set)
{
const struct mail_storage_settings *mail_set;
struct client *client;
client->pool = pool;
client->v = imap_client_vfuncs;
client->set = set;
+ client->lda_set = lda_set;
client->service_user = service_user;
client->session_id = p_strdup(pool, session_id);
client->fd_in = fd_in;
struct client;
struct mail_storage;
struct mail_storage_service_ctx;
+struct lda_settings;
struct imap_parser;
struct imap_arg;
struct imap_urlauth_context;
pool_t pool;
struct mail_storage_service_user *service_user;
- const struct imap_settings *set;
+ const struct imap_settings *set;
+ const struct lda_settings *lda_set;
string_t *capability_string;
struct mail_user *user;
struct client *client_create(int fd_in, int fd_out, const char *session_id,
struct mail_user *user,
struct mail_storage_service_user *service_user,
- const struct imap_settings *set);
+ const struct imap_settings *set,
+ const struct lda_settings *lda_set);
void client_destroy(struct client *client, const char *reason) ATTR_NULL(2);
/* Disconnect client connection */
#include "master-login.h"
#include "mail-user.h"
#include "mail-storage-service.h"
+#include "lda-settings.h"
#include "imap-master-client.h"
#include "imap-resp-code.h"
#include "imap-commands.h"
struct mail_user *mail_user;
struct mail_namespace *ns;
struct client *client;
- struct imap_settings *set;
+ struct imap_settings *imap_set;
+ struct lda_settings *lda_set;
const char *errstr;
enum mail_error mail_error;
return -1;
}
- set = mail_storage_service_user_get_set(user)[1];
- if (set->verbose_proctitle)
+ imap_set = mail_storage_service_user_get_set(user)[1];
+ if (imap_set->verbose_proctitle)
verbose_proctitle = TRUE;
+ lda_set = mail_storage_service_user_get_set(user)[2];
- settings_var_expand(&imap_setting_parser_info, set, mail_user->pool,
- mail_user_var_expand_table(mail_user));
+ settings_var_expand(&imap_setting_parser_info, imap_set,
+ mail_user->pool, mail_user_var_expand_table(mail_user));
+ settings_var_expand(&lda_setting_parser_info, lda_set,
+ mail_user->pool, mail_user_var_expand_table(mail_user));
client = client_create(fd_in, fd_out, input->session_id,
- mail_user, user, set);
+ mail_user, user, imap_set, lda_set);
client->userdb_fields = input->userdb_fields == NULL ? NULL :
p_strarray_dup(client->pool, input->userdb_fields);
*client_r = client;
{
static const struct setting_parser_info *set_roots[] = {
&imap_setting_parser_info,
+ &lda_setting_parser_info,
NULL
};
struct master_login_settings login_set;