]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Moved -s parameter among -u/-A parameters, since it's only used by mail...
authorTimo Sirainen <tss@iki.fi>
Tue, 23 Nov 2010 19:07:19 +0000 (19:07 +0000)
committerTimo Sirainen <tss@iki.fi>
Tue, 23 Nov 2010 19:07:19 +0000 (19:07 +0000)
src/doveadm/doveadm-mail.c
src/doveadm/doveadm-settings.c
src/doveadm/doveadm-settings.h
src/doveadm/doveadm.c

index be3e557c5479949964b3aa4344a3549d56c9ea4b..ed971917271480bbbec11efc6ff17baff6dd39f0 100644 (file)
@@ -372,7 +372,7 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[])
 
        ctx = doveadm_mail_cmd_init(cmd);
 
-       getopt_args = t_strconcat("Au:", ctx->getopt_args, NULL);
+       getopt_args = t_strconcat("As:u:", ctx->getopt_args, NULL);
        username = getenv("USER");
        wildcard_user = NULL;
        while ((c = getopt(argc, argv, getopt_args)) > 0) {
@@ -380,6 +380,11 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[])
                case 'A':
                        ctx->iterate_all_users = TRUE;
                        break;
+               case 's':
+                       doveadm_settings->doveadm_socket_path = optarg;
+                       if (doveadm_settings->doveadm_worker_count == 0)
+                               doveadm_settings->doveadm_worker_count = 1;
+                       break;
                case 'u':
                        service_flags |=
                                MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP;
index 67dd4b7a46335c9197a41fc091c2a91d48edcc61..2459006c891ab66cfac64be69f921fb9615c8f09 100644 (file)
@@ -91,7 +91,7 @@ const struct setting_parser_info doveadm_setting_parser_info = {
        .dependencies = doveadm_setting_dependencies
 };
 
-const struct doveadm_settings *doveadm_settings;
+struct doveadm_settings *doveadm_settings;
 
 static void
 fix_base_path(struct doveadm_settings *set, pool_t pool, const char **str)
index 07ec3276bb49709eb7dbc38decb6b76e60e0a5c8..511510eef8aa6fc708878d5509b71670352b79b9 100644 (file)
@@ -12,6 +12,6 @@ struct doveadm_settings {
 };
 
 extern const struct setting_parser_info doveadm_setting_parser_info;
-extern const struct doveadm_settings *doveadm_settings;
+extern struct doveadm_settings *doveadm_settings;
 
 #endif
index d6440c2e06736838d8cbf1f4120afccd6c0514b5..d12d9da40a0f9d1eed2e14a1f61c4b9d566931ec 100644 (file)
@@ -221,7 +221,7 @@ static bool doveadm_has_subcommands(const char *cmd_name)
        return doveadm_mail_has_subcommands(cmd_name);
 }
 
-static void doveadm_read_settings(const char *socket_path)
+static void doveadm_read_settings(void)
 {
        static const struct setting_parser_info *set_roots[] = {
                &doveadm_setting_parser_info,
@@ -229,6 +229,7 @@ static void doveadm_read_settings(const char *socket_path)
        };
        struct master_service_settings_input input;
        struct master_service_settings_output output;
+       const struct doveadm_settings *set;
        const char *error;
 
        memset(&input, 0, sizeof(input));
@@ -239,24 +240,8 @@ static void doveadm_read_settings(const char *socket_path)
                                         &output, &error) < 0)
                i_fatal("Error reading configuration: %s", error);
 
-       doveadm_settings = master_service_settings_get_others(master_service)[0];
-       if (socket_path != NULL) {
-               struct setting_parser_context *set_parser =
-                       master_service_get_settings_parser(master_service);
-               const char *set_line =
-                       t_strconcat("doveadm_socket_path=", socket_path, NULL);
-
-               if (settings_parse_line(set_parser, set_line) < 0)
-                       i_unreached();
-               if (doveadm_settings->doveadm_worker_count == 0) {
-                       if (settings_parse_line(set_parser,
-                                               "doveadm_worker_count=1") < 0)
-                               i_unreached();
-               }
-       }
-
-       doveadm_settings = settings_dup(&doveadm_setting_parser_info,
-                                       doveadm_settings,
+       set = master_service_settings_get_others(master_service)[0];
+       doveadm_settings = settings_dup(&doveadm_setting_parser_info, set,
                                        pool_datastack_create());
 }
 
@@ -282,7 +267,7 @@ int main(int argc, char *argv[])
        enum master_service_flags service_flags =
                MASTER_SERVICE_FLAG_STANDALONE |
                MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN;
-       const char *cmd_name, *socket_path = NULL;
+       const char *cmd_name;
        unsigned int i;
        bool quick_init = FALSE;
        int c;
@@ -290,7 +275,7 @@ int main(int argc, char *argv[])
        /* "+" is GNU extension to stop at the first non-option.
           others just accept -+ option. */
        master_service = master_service_init("doveadm", service_flags,
-                                            &argc, &argv, "+Df:s:v");
+                                            &argc, &argv, "+Df:v");
        while ((c = master_getopt(master_service)) > 0) {
                switch (c) {
                case 'D':
@@ -300,9 +285,6 @@ int main(int argc, char *argv[])
                case 'f':
                        doveadm_print_init(optarg);
                        break;
-               case 's':
-                       socket_path = optarg;
-                       break;
                case 'v':
                        doveadm_verbose = TRUE;
                        break;
@@ -317,7 +299,7 @@ int main(int argc, char *argv[])
                /* "help cmd" doesn't need any configuration */
                quick_init = TRUE;
        } else {
-               doveadm_read_settings(socket_path);
+               doveadm_read_settings();
        }
 
        i_array_init(&doveadm_cmds, 32);