4567474e95
Notable changes: * bdrv_co_p{discard,readv,writev,write_zeroes} function signatures changed, to using int64_t for offsets/bytes and some still had int rather than BrdvRequestFlags for the flags. * job_cancel_sync now has a force parameter. Commit messages in 73895f3838cd7fdaf185cf1dbc47be58844a966f 4cfb3f05627ad82af473e7f7ae113c3884cd04e3 sound like using force=true makes more sense. * Added 3 patches coming in via qemu-stable tag, most important one is to work around a librbd issue. * Added another 3 patches from qemu-devel to fix issue leading to crash when live migrating with iothread. * cluster_size calculation helper changed (see patch pve/0026). * QAPI's if conditionals now use 'CONFIG_FOO' rather than 'defined(CONFIG_FOO)' Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
56 lines
2.1 KiB
Diff
56 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Reiter <s.reiter@proxmox.com>
|
|
Date: Wed, 1 Sep 2021 16:51:04 +0200
|
|
Subject: [PATCH] monitor/hmp: add support for flag argument with value
|
|
|
|
Adds support for the "-xS" parameter type, where "-x" denotes a flag
|
|
name and the "S" suffix indicates that this flag is supposed to take an
|
|
arbitrary string parameter.
|
|
|
|
These parameters are always optional, the entry in the qdict will be
|
|
omitted if the flag is not given.
|
|
|
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
|
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
|
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
---
|
|
monitor/hmp.c | 17 ++++++++++++++++-
|
|
1 file changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/monitor/hmp.c b/monitor/hmp.c
|
|
index b20737e63c..b29dbb1833 100644
|
|
--- a/monitor/hmp.c
|
|
+++ b/monitor/hmp.c
|
|
@@ -981,6 +981,7 @@ static QDict *monitor_parse_arguments(Monitor *mon,
|
|
{
|
|
const char *tmp = p;
|
|
int skip_key = 0;
|
|
+ int ret;
|
|
/* option */
|
|
|
|
c = *typestr++;
|
|
@@ -1003,8 +1004,22 @@ static QDict *monitor_parse_arguments(Monitor *mon,
|
|
}
|
|
if (skip_key) {
|
|
p = tmp;
|
|
+ } else if (*typestr == 'S') {
|
|
+ /* has option with string value */
|
|
+ typestr++;
|
|
+ tmp = p++;
|
|
+ while (qemu_isspace(*p)) {
|
|
+ p++;
|
|
+ }
|
|
+ ret = get_str(buf, sizeof(buf), &p);
|
|
+ if (ret < 0) {
|
|
+ monitor_printf(mon, "%s: value expected for -%c\n",
|
|
+ cmd->name, *tmp);
|
|
+ goto fail;
|
|
+ }
|
|
+ qdict_put_str(qdict, key, buf);
|
|
} else {
|
|
- /* has option */
|
|
+ /* has boolean option */
|
|
p++;
|
|
qdict_put_bool(qdict, key, true);
|
|
}
|