]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm-mail: Handle field conversion to short opt better
authorAki Tuomi <aki.tuomi@dovecot.fi>
Sat, 14 Apr 2018 11:31:44 +0000 (14:31 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 30 Apr 2018 12:53:10 +0000 (15:53 +0300)
Convert non-string types as well

src/doveadm/doveadm-mail.c

index 1f0238b25114bfcde95d1fcc79cc42f359fa6aee..69d4af1119acfb6a538754977af7c7a5d98cde5e 100644 (file)
@@ -1053,7 +1053,23 @@ doveadm_cmd_ver2_to_mail_cmd_wrapper(struct doveadm_cmd_context *cctx)
                        const char *short_opt_str = p_strdup_printf(
                                mctx->pool, "-%c", arg->short_opt);
 
-                       optarg = (char*)arg->value.v_string;
+                       switch(arg->type) {
+                       case CMD_PARAM_BOOL:
+                               optarg = NULL;
+                               break;
+                       case CMD_PARAM_INT64:
+                               optarg = (char*)dec2str(arg->value.v_int64);
+                               break;
+                       case CMD_PARAM_IP:
+                               optarg = (char*)net_ip2addr(&arg->value.v_ip);
+                               break;
+                       case CMD_PARAM_STR:
+                               optarg = (char*)arg->value.v_string;
+                               break;
+                       default:
+                               i_panic("Cannot convert parameter %s to short opt",
+                                       arg->name);
+                       }
                        mctx->v.parse_arg(mctx, arg->short_opt);
 
                        array_append(&full_args, &short_opt_str, 1);