]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Include mail user variables in logout format
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 4 Dec 2017 09:01:05 +0000 (11:01 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 1 Feb 2018 12:50:06 +0000 (14:50 +0200)
src/imap/imap-client.c

index 4530d1733bd08b02d40939fcb638bf8ad881b2c1..9f3be9b6ae220a2e68dc5c32cd16a2960a69088c 100644 (file)
@@ -247,21 +247,16 @@ const char *client_stats(struct client *client)
                { '\0', dec2str(client->autoexpunged_count), "autoexpunged" },
                { '\0', dec2str(client->append_count), "appended" },
        };
-       ARRAY(struct var_expand_table) tab;
        const struct var_expand_table *user_tab =
                mail_user_var_expand_table(client->user);
+       const struct var_expand_table *tab =
+               t_var_expand_merge_tables(logout_tab, user_tab);
        string_t *str;
-       size_t n;
-
-       t_array_init(&tab, 32);
-       array_append(&tab, logout_tab, N_ELEMENTS(logout_tab));
-       /* count elements */
-       for(n = 0; user_tab[n].long_key != NULL; n++)
-               ;
-       array_append(&tab, user_tab, n);
-       array_append_zero(&tab);
+
        str = t_str_new(128);
-       var_expand(str, client->set->imap_logout_format, array_idx(&tab, 0));
+       var_expand_with_funcs(str, client->set->imap_logout_format,
+                             tab, mail_user_var_expand_func_table,
+                             client->user);
        return str_c(str);
 }