mail_user->userdb_fields = user->input.userdb_fields == NULL ? NULL :
p_strarray_dup(mail_user->pool, user->input.userdb_fields);
+ mail_user_add_event_fields(mail_user);
string_t *str = t_str_new(64);
#include "safe-mkstemp.h"
#include "str.h"
#include "strescape.h"
+#include "strfuncs.h"
#include "var-expand.h"
#include "settings-parser.h"
#include "iostream-ssl.h"
{
}
+void mail_user_add_event_fields(struct mail_user *user)
+{
+ if (user->userdb_fields == NULL)
+ return;
+ for (unsigned int i = 0; user->userdb_fields[i] != NULL; i++) {
+ const char *field = user->userdb_fields[i];
+ const char *key, *value;
+ t_split_key_value_eq(field, &key, &value);
+ if (str_begins(key, "event_", &key))
+ event_add_str(user->event, key, value);
+ }
+}
+
static struct mail_user *
mail_user_alloc_int(struct mail_storage_service_user *service_user,
struct setting_parser_context *unexpanded_set_parser,
struct mail_storage *
mail_user_get_storage_class(struct mail_user *user, const char *name);
+/* Import any event_ fields from userdb fields to mail user event. */
+void mail_user_add_event_fields(struct mail_user *user);
+
/* Initialize SSL client settings from mail_user settings. */
void mail_user_init_ssl_client_settings(struct mail_user *user,
struct ssl_iostream_settings *ssl_set_r);