From: Aki Tuomi Date: Sat, 14 Apr 2018 11:31:44 +0000 (+0300) Subject: doveadm-mail: Handle field conversion to short opt better X-Git-Tag: 2.3.2.rc1~162 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8be73775bcffe734e8fe196a109662fabb2b9468;p=thirdparty%2Fdovecot%2Fcore.git doveadm-mail: Handle field conversion to short opt better Convert non-string types as well --- diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index 1890f72da4..4a899a8c93 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -1052,7 +1052,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); + } if (!mctx->v.parse_arg(mctx, arg->short_opt)) { i_error("Invalid parameter %c", arg->short_opt); doveadm_mail_cmd_free(mctx);