]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm auth cache flush: Convert auth-server command to v2
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 9 Jun 2021 21:45:43 +0000 (00:45 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 21 Jul 2021 09:03:09 +0000 (09:03 +0000)
src/doveadm/doveadm-auth-server.c
src/doveadm/doveadm-auth.c

index 462c8e47adfbb5203569db0e02e8db90b392ffd5..f50fa5f4e54d8ad6d64c6330ef08ddb2c66463f0 100644 (file)
@@ -202,32 +202,21 @@ cmd_user_list(struct auth_master_connection *conn,
        o_stream_nsend_str(doveadm_print_ostream, "]}");
 }
 
-static void cmd_auth_cache_flush(int argc, char *argv[])
+static void cmd_auth_cache_flush(struct doveadm_cmd_context *cctx)
 {
-       const char *master_socket_path = NULL;
+       const char *master_socket_path, *const *users;
        struct auth_master_connection *conn;
        unsigned int count;
-       int c;
 
-       while ((c = getopt(argc, argv, "a:")) > 0) {
-               switch (c) {
-               case 'a':
-                       master_socket_path = optarg;
-                       break;
-               default:
-                       doveadm_exit_code = EX_USAGE;
-                       return;
-               }
-       }
-       argv += optind;
-
-       if (master_socket_path == NULL) {
+       if (!doveadm_cmd_param_str(cctx, "socket-path", &master_socket_path)) {
                master_socket_path = t_strconcat(doveadm_settings->base_dir,
                                                 "/auth-master", NULL);
        }
+       if (!doveadm_cmd_param_array(cctx, "user", &users))
+               i_fatal("Missing user parameter");
 
        conn = doveadm_get_auth_master_conn(master_socket_path);
-       if (auth_master_cache_flush(conn, (void *)argv, &count) < 0) {
+       if (auth_master_cache_flush(conn, users, &count) < 0) {
                i_error("Cache flush failed");
                doveadm_exit_code = EX_TEMPFAIL;
        } else {
@@ -495,7 +484,7 @@ static
 struct doveadm_cmd_ver2 doveadm_cmd_auth_server[] = {
 {
        .name = "auth cache flush",
-       .old_cmd = cmd_auth_cache_flush,
+       .cmd = cmd_auth_cache_flush,
        .usage = "[-a <master socket path>] [<user> [...]]",
 DOVEADM_CMD_PARAMS_START
 DOVEADM_CMD_PARAM('a', "socket-path", CMD_PARAM_STR, 0)
index 228adaf89e489945c2a45bf069f30068406739a6..d89befe2e45f6f5f174dd7469014648f431d334b 100644 (file)
@@ -326,15 +326,14 @@ static void cmd_auth_cache_flush(struct doveadm_cmd_context *cctx)
 {
        const char *master_socket_path;
        struct auth_master_connection *conn;
-       const char *const *users;
+       const char *const *users = NULL;
        unsigned int count;
 
        if (!doveadm_cmd_param_str(cctx, "socket-path", &master_socket_path)) {
                master_socket_path = t_strconcat(doveadm_settings->base_dir,
                                                 "/auth-master", NULL);
        }
-       if (!doveadm_cmd_param_array(cctx, "user", &users))
-               auth_cmd_help(cctx);
+       (void)doveadm_cmd_param_array(cctx, "user", &users);
 
        conn = doveadm_get_auth_master_conn(master_socket_path);
        if (auth_master_cache_flush(conn, users, &count) < 0) {