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.9~1952 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa174bb950c734919bf16fda4e7a839d5d52f4d0;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 1483273381..890aff31f4 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -1054,7 +1054,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);