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);
str_printfa(str, "Effective uid=%s, gid=%s, home=%s",
{
}
+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];
+ if (!str_begins(field, "event_"))
+ continue;
+ const char *key = field + 6;
+ const char *value = strchr(key, '=');
+ if (value != NULL) {
+ event_add_str(user->event, t_strdup_until(key, value),
+ value+1);
+ }
+ }
+}
+
static struct mail_user *
mail_user_alloc_int(struct event *parent_event,
const char *username,
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);