]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Add who_filter.username_wildcards helper boolean
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 25 Mar 2025 09:18:36 +0000 (11:18 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Sun, 30 Mar 2025 19:41:17 +0000 (19:41 +0000)
Simplifies the next commit.

src/doveadm/doveadm-kick.c
src/doveadm/doveadm-who.c
src/doveadm/doveadm-who.h

index e04c925825bd1d2b810689e2bc35e0e8c8472a1b..380467a013e9222859fd76c58bf937b15f01b636 100644 (file)
@@ -153,7 +153,7 @@ static void cmd_kick(struct doveadm_cmd_context *cctx)
 
        if (ctx.who.filter.net_bits == 0 &&
            ctx.who.filter.dest_ip.family == 0 &&
-           strpbrk(ctx.who.filter.username, "*?") == NULL) {
+           !ctx.who.filter.username_wildcards) {
                /* kick a single [alternative] user's all connections */
                p_array_init(&ctx.kicks, ctx.who.pool, 1);
                struct kick_session *session = array_append_space(&ctx.kicks);
index 07fdb168ed98e3acdd92c41e960793c3ab34b2f2..336112028ce07723d5fa257960083c61d4a229ce 100644 (file)
@@ -180,6 +180,8 @@ who_parse_masks(struct who_context *ctx, const char *const *masks)
                                return -1;
                        }
                        ctx->filter.username = masks[i];
+                       if (strpbrk(masks[i], "*?") != NULL)
+                               ctx->filter.username_wildcards = TRUE;
                }
        }
        return 0;
index 403b4abb736e6c8ee9576b89f3278ad55d695f76..f068b1c14f4d4eecbfc6de5bead37620fddeb28b 100644 (file)
@@ -16,6 +16,7 @@ struct who_line {
 
 struct who_filter {
        const char *username;
+       bool username_wildcards;
 
        const char *alt_username_field;
        unsigned int alt_username_idx;