---
tests/vcpupin | 4 +-
tools/virsh-domain-monitor.c | 9 +--
tools/virsh-domain.c | 134 +++++++------------------------------------
tools/virsh-host.c | 61 +++-----------------
tools/virsh-interface.c | 6 +-
tools/virsh-network.c | 6 +-
tools/virsh-volume.c | 24 ++------
tools/virsh.c | 121 ++++++++++++++++++++++----------------
8 files changed, 109 insertions(+), 256 deletions(-)
diff --git a/tests/vcpupin b/tests/vcpupin
index ab0d38f..b6b8b31 100755
--- a/tests/vcpupin
+++ b/tests/vcpupin
@@ -34,7 +34,7 @@ fail=0
$abs_top_builddir/tools/virsh --connect test:///default vcpupin test a 0,1 > out
2>&1
test $? = 1 || fail=1
cat <<\EOF > exp || fail=1
-error: Numeric value for <vcpu> option is malformed or out of range
+error: Numeric value 'a' for <vcpu> option is malformed or out of range
EOF
compare exp out || fail=1
@@ -52,7 +52,7 @@ compare exp out || fail=1
$abs_top_builddir/tools/virsh --connect test:///default vcpupin test -100 0,1 > out
2>&1
test $? = 1 || fail=1
cat <<\EOF > exp || fail=1
-error: Numeric value for <vcpu> option is malformed or out of range
+error: Numeric value '-100' for <vcpu> option is malformed or out of range
EOF
compare exp out || fail=1
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index d8b217b..1d4dc25 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -340,12 +340,8 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd)
/* Providing a period will adjust the balloon driver collection period.
* This is not really an unsigned long, but it
*/
- if ((rv = vshCommandOptInt(ctl, cmd, "period", &period)) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "period");
+ if ((rv = vshCommandOptInt(ctl, cmd, "period", &period)) < 0)
goto cleanup;
- }
if (rv > 0) {
if (period < 0) {
vshError(ctl, _("Invalid collection period value '%d'"),
period);
@@ -1440,9 +1436,6 @@ cmdDomTime(vshControl *ctl, const vshCmd *cmd)
if (rv < 0) {
/* invalid integer format */
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "time");
goto cleanup;
} else if (rv > 0) {
/* valid integer to set */
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 233191a..f8cd67e 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -1552,9 +1552,6 @@ cmdBlkiotune(vshControl * ctl, const vshCmd * cmd)
return false;
if ((rv = vshCommandOptInt(ctl, cmd, "weight", &weight)) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "weight");
goto cleanup;
} else if (rv > 0) {
if (weight <= 0) {
@@ -1692,12 +1689,8 @@ blockJobImpl(vshControl *ctl, const vshCmd *cmd,
if (vshCommandOptStringReq(ctl, cmd, "path", &path) < 0)
goto cleanup;
- if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "bandwidth");
+ if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0)
goto cleanup;
- }
switch (mode) {
case VSH_CMD_BLOCK_JOB_ABORT:
@@ -2216,24 +2209,12 @@ cmdBlockCopy(vshControl *ctl, const vshCmd *cmd)
* MiB/s, and either reject negative input or treat it as 0 rather
* than trying to guess which value will work well across both
* APIs with their different sizes and scales. */
- if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "bandwidth");
+ if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0)
goto cleanup;
- }
- if (vshCommandOptUInt(ctl, cmd, "granularity", &granularity) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "granularity");
+ if (vshCommandOptUInt(ctl, cmd, "granularity", &granularity) < 0)
goto cleanup;
- }
- if (vshCommandOptULongLong(ctl, cmd, "buf-size", &buf_size) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "buf-size");
+ if (vshCommandOptULongLong(ctl, cmd, "buf-size", &buf_size) < 0)
goto cleanup;
- }
if (xml) {
if (virFileReadAll(xml, VSH_MAX_XML_FILE, &xmlstr) < 0) {
@@ -2800,12 +2781,8 @@ cmdBlockResize(vshControl *ctl, const vshCmd *cmd)
if (vshCommandOptStringReq(ctl, cmd, "path", (const char **) &path)
< 0)
return false;
- if (vshCommandOptScaledInt(ctl, cmd, "size", &size, 1024, ULLONG_MAX)
< 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "size");
+ if (vshCommandOptScaledInt(ctl, cmd, "size", &size, 1024, ULLONG_MAX)
< 0)
return false;
- }
/* Prefer the older interface of KiB. */
if (size % 1024 == 0)
@@ -3406,12 +3383,8 @@ cmdDomPMSuspend(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
return false;
- if (vshCommandOptULongLong(ctl, cmd, "duration", &duration) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "duration");
+ if (vshCommandOptULongLong(ctl, cmd, "duration", &duration) < 0)
goto cleanup;
- }
if (vshCommandOptStringReq(ctl, cmd, "target", &target) < 0)
goto cleanup;
@@ -5330,12 +5303,8 @@ cmdScreenshot(vshControl *ctl, const vshCmd *cmd)
if (vshCommandOptStringReq(ctl, cmd, "file", (const char **) &file)
< 0)
return false;
- if (vshCommandOptUInt(ctl, cmd, "screen", &screen) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "screen");
+ if (vshCommandOptUInt(ctl, cmd, "screen", &screen) < 0)
return false;
- }
if (!(dom = vshCommandOptDomain(ctl, cmd, &name)))
return false;
@@ -6497,12 +6466,8 @@ cmdVcpuPin(vshControl *ctl, const vshCmd *cmd)
if (!cpulist)
VSH_EXCLUSIVE_OPTIONS_VAR(live, config);
- if ((got_vcpu = vshCommandOptUInt(ctl, cmd, "vcpu", &vcpu)) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "vcpu");
+ if ((got_vcpu = vshCommandOptUInt(ctl, cmd, "vcpu", &vcpu)) < 0)
return false;
- }
/* In pin mode, "vcpu" is necessary */
if (cpulist && got_vcpu == 0) {
@@ -6766,12 +6731,8 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptInt(ctl, cmd, "count", &count) < 0 || count <=
0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "count");
+ if (vshCommandOptInt(ctl, cmd, "count", &count) < 0 || count <=
0)
goto cleanup;
- }
/* none of the options were specified */
if (!current && flags == 0) {
@@ -6946,12 +6907,8 @@ cmdIOThreadPin(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptUInt(ctl, cmd, "iothread", &iothread_id) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "iothread");
+ if (vshCommandOptUInt(ctl, cmd, "iothread", &iothread_id) < 0)
goto cleanup;
- }
if (vshCommandOptString(ctl, cmd, "cpulist", &cpulist) < 0) {
vshError(ctl, "%s", _("iothreadpin: invalid cpulist."));
@@ -7037,12 +6994,8 @@ cmdIOThreadAdd(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "id");
+ if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0)
goto cleanup;
- }
if (iothread_id <= 0) {
vshError(ctl, _("Invalid IOThread id value: '%d'"),
iothread_id);
goto cleanup;
@@ -7119,12 +7072,8 @@ cmdIOThreadDel(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "id");
+ if (vshCommandOptInt(ctl, cmd, "id", &iothread_id) < 0)
goto cleanup;
- }
if (iothread_id <= 0) {
vshError(ctl, _("Invalid IOThread id value: '%d'"),
iothread_id);
goto cleanup;
@@ -7409,9 +7358,6 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
show_total = vshCommandOptBool(cmd, "total");
if ((rv = vshCommandOptInt(ctl, cmd, "start", &cpu)) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "start");
goto cleanup;
} else if (rv > 0) {
if (cpu < 0) {
@@ -7422,9 +7368,6 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
}
if ((rv = vshCommandOptInt(ctl, cmd, "count", &show_count)) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "count");
goto cleanup;
} else if (rv > 0) {
if (show_count < 0) {
@@ -8211,12 +8154,8 @@ cmdSendKey(vshControl *ctl, const vshCmd *cmd)
if (vshCommandOptString(ctl, cmd, "codeset", &codeset_option) <= 0)
codeset_option = "linux";
- if (vshCommandOptUInt(ctl, cmd, "holdtime", &holdtime) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "holdtime");
+ if (vshCommandOptUInt(ctl, cmd, "holdtime", &holdtime) < 0)
goto cleanup;
- }
codeset = virKeycodeSetTypeFromString(codeset_option);
if (codeset < 0) {
@@ -8337,12 +8276,8 @@ cmdSendProcessSignal(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptLongLong(ctl, cmd, "pid", &pid_value) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "pid");
+ if (vshCommandOptLongLong(ctl, cmd, "pid", &pid_value) < 0)
goto cleanup;
- }
if (vshCommandOptStringReq(ctl, cmd, "signame", &signame) < 0)
goto cleanup;
@@ -8439,9 +8374,6 @@ cmdSetmem(vshControl *ctl, const vshCmd *cmd)
else
max = ULONG_MAX;
if (vshCommandOptScaledInt(ctl, cmd, "size", &bytes, 1024, max) < 0)
{
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "size");
virDomainFree(dom);
return false;
}
@@ -8536,9 +8468,6 @@ cmdSetmaxmem(vshControl *ctl, const vshCmd *cmd)
else
max = ULONG_MAX;
if (vshCommandOptScaledInt(ctl, cmd, "size", &bytes, 1024, max) < 0)
{
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "size");
virDomainFree(dom);
return false;
}
@@ -9171,12 +9100,8 @@ cmdQemuAttach(vshControl *ctl, const vshCmd *cmd)
unsigned int flags = 0;
unsigned int pid_value; /* API uses unsigned int, not pid_t */
- if (vshCommandOptUInt(ctl, cmd, "pid", &pid_value) <= 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "pid");
+ if (vshCommandOptUInt(ctl, cmd, "pid", &pid_value) <= 0)
goto cleanup;
- }
if (!(dom = virDomainQemuAttach(ctl->conn, pid_value, flags))) {
vshError(ctl, _("Failed to attach to pid %u"), pid_value);
@@ -9268,14 +9193,10 @@ cmdQemuAgentCommand(vshControl *ctl, const vshCmd *cmd)
guest_agent_cmd = virBufferContentAndReset(&buf);
judge = vshCommandOptInt(ctl, cmd, "timeout", &timeout);
- if (judge < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "timeout");
+ if (judge < 0)
goto cleanup;
- } else if (judge > 0) {
+ else if (judge > 0)
judge = 1;
- }
if (judge && timeout < 1) {
vshError(ctl, "%s", _("timeout must be positive"));
goto cleanup;
@@ -10153,12 +10074,8 @@ cmdMigrateSetMaxDowntime(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptLongLong(ctl, cmd, "downtime", &downtime) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "downtime");
+ if (vshCommandOptLongLong(ctl, cmd, "downtime", &downtime) < 0)
goto done;
- }
if (downtime < 1) {
vshError(ctl, "%s", _("migrate: Invalid downtime"));
goto done;
@@ -10217,9 +10134,6 @@ cmdMigrateCompCache(vshControl *ctl, const vshCmd *cmd)
rc = vshCommandOptULongLong(ctl, cmd, "size", &size);
if (rc < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "size");
goto cleanup;
} else if (rc != 0) {
if (virDomainMigrateSetCompressionCache(dom, size, 0) < 0)
@@ -10276,12 +10190,8 @@ cmdMigrateSetMaxSpeed(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return false;
- if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "bandwidth");
+ if (vshCommandOptULWrap(ctl, cmd, "bandwidth", &bandwidth) < 0)
goto done;
- }
if (virDomainMigrateSetMaxSpeed(dom, bandwidth, 0) < 0)
goto done;
@@ -12616,12 +12526,8 @@ cmdDomFSTrim(vshControl *ctl, const vshCmd *cmd)
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
return ret;
- if (vshCommandOptULongLong(ctl, cmd, "minimum", &minimum) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "minimum");
+ if (vshCommandOptULongLong(ctl, cmd, "minimum", &minimum) < 0)
goto cleanup;
- }
if (vshCommandOptStringReq(ctl, cmd, "mountpoint", &mountPoint) <
0)
goto cleanup;
diff --git a/tools/virsh-host.c b/tools/virsh-host.c
index b90782f..66f7fd9 100644
--- a/tools/virsh-host.c
+++ b/tools/virsh-host.c
@@ -176,12 +176,8 @@ cmdFreecell(vshControl *ctl, const vshCmd *cmd)
VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
- if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &cell) <
0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "cellno");
+ if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &cell) <
0)
return false;
- }
if (all) {
if (!(cap_xml = virConnectGetCapabilities(ctl->conn))) {
@@ -311,12 +307,8 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
- if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024,
UINT_MAX) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "pagesize");
+ if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &bytes, 1024,
UINT_MAX) < 0)
goto cleanup;
- }
kibibytes = VIR_DIV_UP(bytes, 1024);
if (all) {
@@ -391,12 +383,8 @@ cmdFreepages(vshControl *ctl, const vshCmd *cmd)
goto cleanup;
}
- if (vshCommandOptInt(ctl, cmd, "cellno", &cell) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "cellno");
+ if (vshCommandOptInt(ctl, cmd, "cellno", &cell) < 0)
goto cleanup;
- }
if (cell < -1) {
vshError(ctl, "%s",
@@ -490,25 +478,15 @@ cmdAllocpages(vshControl *ctl, const vshCmd *cmd)
VSH_EXCLUSIVE_OPTIONS_VAR(all, cellno);
- if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &startCell)
< 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "cellno");
+ if (cellno && vshCommandOptInt(ctl, cmd, "cellno", &startCell)
< 0)
return false;
- }
- if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &tmp, 1024, UINT_MAX)
< 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "cellno");
+ if (vshCommandOptScaledInt(ctl, cmd, "pagesize", &tmp, 1024, UINT_MAX)
< 0)
return false;
- }
pageSizes[0] = VIR_DIV_UP(tmp, 1024);
- if (vshCommandOptULongLong(ctl, cmd, "pagecount", &pageCounts[0]) <
0) {
- vshError(ctl, "%s", _("pagecount has to be a number"));
+ if (vshCommandOptULongLong(ctl, cmd, "pagecount", &pageCounts[0]) <
0)
return false;
- }
flags |= add ? VIR_NODE_ALLOC_PAGES_ADD : VIR_NODE_ALLOC_PAGES_SET;
@@ -764,12 +742,8 @@ cmdNodeCpuStats(vshControl *ctl, const vshCmd *cmd)
unsigned long long cpu_stats[VSH_CPU_LAST] = { 0 };
bool present[VSH_CPU_LAST] = { false };
- if (vshCommandOptInt(ctl, cmd, "cpu", &cpuNum) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "cpu");
+ if (vshCommandOptInt(ctl, cmd, "cpu", &cpuNum) < 0)
return false;
- }
if (virNodeGetCPUStats(ctl->conn, cpuNum, NULL, &nparams, 0) != 0) {
vshError(ctl, "%s",
@@ -875,12 +849,8 @@ cmdNodeMemStats(vshControl *ctl, const vshCmd *cmd)
virNodeMemoryStatsPtr params = NULL;
bool ret = false;
- if (vshCommandOptInt(ctl, cmd, "cell", &cellNum) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "cell");
+ if (vshCommandOptInt(ctl, cmd, "cell", &cellNum) < 0)
return false;
- }
/* get the number of memory parameters */
if (virNodeGetMemoryStats(ctl->conn, cellNum, NULL, &nparams, 0) != 0) {
@@ -951,12 +921,8 @@ cmdNodeSuspend(vshControl *ctl, const vshCmd *cmd)
if (vshCommandOptStringReq(ctl, cmd, "target", &target) < 0)
return false;
- if (vshCommandOptLongLong(ctl, cmd, "duration", &duration) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "duration");
+ if (vshCommandOptLongLong(ctl, cmd, "duration", &duration) < 0)
return false;
- }
if (STREQ(target, "mem")) {
suspendTarget = VIR_NODE_SUSPEND_TARGET_MEM;
@@ -1261,9 +1227,6 @@ cmdNodeMemoryTune(vshControl *ctl, const vshCmd *cmd)
size_t i;
if ((rc = vshCommandOptUInt(ctl, cmd, "shm-pages-to-scan", &value))
< 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "shm-pages-to-scan");
goto cleanup;
} else if (rc > 0) {
if (virTypedParamsAddUInt(¶ms, &nparams, &maxparams,
@@ -1273,9 +1236,6 @@ cmdNodeMemoryTune(vshControl *ctl, const vshCmd *cmd)
}
if ((rc = vshCommandOptUInt(ctl, cmd, "shm-sleep-millisecs", &value))
< 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "shm-sleep-millisecs");
goto cleanup;
} else if (rc > 0) {
if (virTypedParamsAddUInt(¶ms, &nparams, &maxparams,
@@ -1285,9 +1245,6 @@ cmdNodeMemoryTune(vshControl *ctl, const vshCmd *cmd)
}
if ((rc = vshCommandOptUInt(ctl, cmd, "shm-merge-across-nodes",
&value)) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "shm-merge-across-nodes");
goto cleanup;
} else if (rc > 0) {
if (virTypedParamsAddUInt(¶ms, &nparams, &maxparams,
diff --git a/tools/virsh-interface.c b/tools/virsh-interface.c
index a6ae3b3..6ad5345 100644
--- a/tools/virsh-interface.c
+++ b/tools/virsh-interface.c
@@ -843,12 +843,8 @@ cmdInterfaceBridge(vshControl *ctl, const vshCmd *cmd)
/* use "no-stp" because we want "stp" to default true */
stp = !vshCommandOptBool(cmd, "no-stp");
- if (vshCommandOptUInt(ctl, cmd, "delay", &delay) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "delay");
+ if (vshCommandOptUInt(ctl, cmd, "delay", &delay) < 0)
goto cleanup;
- }
nostart = vshCommandOptBool(cmd, "no-start");
diff --git a/tools/virsh-network.c b/tools/virsh-network.c
index 24250dd..45f4840 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -936,12 +936,8 @@ cmdNetworkUpdate(vshControl *ctl, const vshCmd *cmd)
goto cleanup;
}
- if (vshCommandOptInt(ctl, cmd, "parent-index", &parentIndex) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "parent-index");
+ if (vshCommandOptInt(ctl, cmd, "parent-index", &parentIndex) < 0)
goto cleanup;
- }
/* The goal is to have a full xml element in the "xml"
* string. This is provided in the --xml option, either directly
diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c
index 08ee6a1..da37b0b 100644
--- a/tools/virsh-volume.c
+++ b/tools/virsh-volume.c
@@ -693,19 +693,11 @@ cmdVolUpload(vshControl *ctl, const vshCmd *cmd)
const char *name = NULL;
unsigned long long offset = 0, length = 0;
- if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "offset");
+ if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0)
return false;
- }
- if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "length");
+ if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0)
return false;
- }
if (!(vol = vshCommandOptVol(ctl, cmd, "vol", "pool",
&name)))
return false;
@@ -806,19 +798,11 @@ cmdVolDownload(vshControl *ctl, const vshCmd *cmd)
unsigned long long offset = 0, length = 0;
bool created = false;
- if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "offset");
+ if (vshCommandOptULongLong(ctl, cmd, "offset", &offset) < 0)
return false;
- }
- if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0) {
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "length");
+ if (vshCommandOptULongLongWrap(ctl, cmd, "length", &length) < 0)
return false;
- }
if (!(vol = vshCommandOptVol(ctl, cmd, "vol", "pool",
&name)))
return false;
diff --git a/tools/virsh.c b/tools/virsh.c
index 07ef69e..b819cd9 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -1510,30 +1510,36 @@ vshCommandOpt(const vshCmd *cmd,
* @name option name
* @value result
*
- * Convert option to int
+ * Convert option to int.
+ * On error, a message is displayed.
+ *
* Return value:
* >0 if option found and valid (@value updated)
* 0 if option not found and not required (@value untouched)
* <0 in all other cases (@value untouched)
*/
int
-vshCommandOptInt(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+vshCommandOptInt(vshControl *ctl, const vshCmd *cmd,
const char *name, int *value)
{
vshCmdOpt *arg;
int ret;
- ret = vshCommandOpt(cmd, name, &arg, true);
- if (ret <= 0)
+ if ((ret = vshCommandOpt(cmd, name, &arg, true)) <= 0)
return ret;
- if (virStrToLong_i(arg->data, NULL, 10, value) < 0)
- return -1;
- return 1;
+ if ((ret = virStrToLong_i(arg->data, NULL, 10, value)) < 0)
+ vshError(ctl,
+ _("Numeric value '%s' for <%s> option is malformed or
out of range"),
+ arg->data, name);
+ else
+ ret = 1;
+
+ return ret;
}
static int
-vshCommandOptUIntInternal(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+vshCommandOptUIntInternal(vshControl *ctl, const vshCmd *cmd,
const char *name, unsigned int *value,
bool wrap)
{
@@ -1543,15 +1549,18 @@ vshCommandOptUIntInternal(vshControl *ctl ATTRIBUTE_UNUSED, const
vshCmd *cmd,
if ((ret = vshCommandOpt(cmd, name, &arg, true)) <= 0)
return ret;
- if (wrap) {
- if (virStrToLong_ui(arg->data, NULL, 10, value) < 0)
- return -1;
- } else {
- if (virStrToLong_uip(arg->data, NULL, 10, value) < 0)
- return -1;
- }
+ if (wrap)
+ ret = virStrToLong_ui(arg->data, NULL, 10, value);
+ else
+ ret = virStrToLong_uip(arg->data, NULL, 10, value);
+ if (ret < 0)
+ vshError(ctl,
+ _("Numeric value '%s' for <%s> option is malformed or
out of range"),
+ arg->data, name);
+ else
+ ret = 1;
- return 1;
+ return ret;
}
/**
@@ -1589,7 +1598,7 @@ vshCommandOptUIntWrap(vshControl *ctl, const vshCmd *cmd,
}
static int
-vshCommandOptULInternal(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+vshCommandOptULInternal(vshControl *ctl, const vshCmd *cmd,
const char *name, unsigned long *value,
bool wrap)
{
@@ -1599,15 +1608,18 @@ vshCommandOptULInternal(vshControl *ctl ATTRIBUTE_UNUSED, const
vshCmd *cmd,
if ((ret = vshCommandOpt(cmd, name, &arg, true)) <= 0)
return ret;
- if (wrap) {
- if (virStrToLong_ul(arg->data, NULL, 10, value) < 0)
- return -1;
- } else {
- if (virStrToLong_ulp(arg->data, NULL, 10, value) < 0)
- return -1;
- }
+ if (wrap)
+ ret = virStrToLong_ul(arg->data, NULL, 10, value);
+ else
+ ret = virStrToLong_ulp(arg->data, NULL, 10, value);
+ if (ret < 0)
+ vshError(ctl,
+ _("Numeric value '%s' for <%s> option is malformed or
out of range"),
+ arg->data, name);
+ else
+ ret = 1;
- return 1;
+ return ret;
}
/*
@@ -1664,8 +1676,7 @@ vshCommandOptString(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd
*cmd,
vshCmdOpt *arg;
int ret;
- ret = vshCommandOpt(cmd, name, &arg, true);
- if (ret <= 0)
+ if ((ret = vshCommandOpt(cmd, name, &arg, true)) <= 0)
return ret;
if (!*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK))
@@ -1728,23 +1739,27 @@ vshCommandOptStringReq(vshControl *ctl, const vshCmd *cmd,
* See vshCommandOptInt()
*/
int
-vshCommandOptLongLong(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+vshCommandOptLongLong(vshControl *ctl, const vshCmd *cmd,
const char *name, long long *value)
{
vshCmdOpt *arg;
int ret;
- ret = vshCommandOpt(cmd, name, &arg, true);
- if (ret <= 0)
+ if ((ret = vshCommandOpt(cmd, name, &arg, true)) <= 0)
return ret;
- if (virStrToLong_ll(arg->data, NULL, 10, value) < 0)
- return -1;
- return 1;
+ if ((ret = virStrToLong_ll(arg->data, NULL, 10, value)) < 0)
+ vshError(ctl,
+ _("Numeric value '%s' for <%s> option is malformed or
out of range"),
+ arg->data, name);
+ else
+ ret = 1;
+
+ return ret;
}
static int
-vshCommandOptULongLongInternal(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+vshCommandOptULongLongInternal(vshControl *ctl, const vshCmd *cmd,
const char *name, unsigned long long *value,
bool wrap)
{
@@ -1754,15 +1769,18 @@ vshCommandOptULongLongInternal(vshControl *ctl ATTRIBUTE_UNUSED,
const vshCmd *c
if ((ret = vshCommandOpt(cmd, name, &arg, true)) <= 0)
return ret;
- if (wrap) {
- if (virStrToLong_ull(arg->data, NULL, 10, value) < 0)
- return -1;
- } else {
- if (virStrToLong_ullp(arg->data, NULL, 10, value) < 0)
- return -1;
- }
+ if (wrap)
+ ret = virStrToLong_ull(arg->data, NULL, 10, value);
+ else
+ ret = virStrToLong_ullp(arg->data, NULL, 10, value);
+ if (ret < 0)
+ vshError(ctl,
+ _("Numeric value '%s' for <%s> option is malformed or
out of range"),
+ arg->data, name);
+ else
+ ret = 1;
- return 1;
+ return ret;
}
/**
@@ -1812,7 +1830,7 @@ vshCommandOptULongLongWrap(vshControl *ctl, const vshCmd *cmd,
* See vshCommandOptInt()
*/
int
-vshCommandOptScaledInt(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+vshCommandOptScaledInt(vshControl *ctl, const vshCmd *cmd,
const char *name, unsigned long long *value,
int scale, unsigned long long max)
{
@@ -1824,9 +1842,16 @@ vshCommandOptScaledInt(vshControl *ctl ATTRIBUTE_UNUSED, const
vshCmd *cmd,
return ret;
if (virStrToLong_ullp(arg->data, &end, 10, value) < 0 ||
virScaleInteger(value, end, scale, max) < 0)
- return -1;
+ {
+ vshError(ctl,
+ _("Numeric value '%s' for <%s> option is malformed or
out of range"),
+ arg->data, name);
+ ret = -1;
+ } else {
+ ret = 1;
+ }
- return 1;
+ return ret;
}
@@ -1891,11 +1916,7 @@ vshCommandOptTimeoutToMs(vshControl *ctl, const vshCmd *cmd,
int ret;
unsigned int utimeout;
- if ((ret = vshCommandOptUInt(ctl, cmd, "timeout", &utimeout)) < 0)
- vshError(ctl,
- _("Numeric value for <%s> option is malformed or out of
range"),
- "timeout");
- if (ret <= 0)
+ if ((ret = vshCommandOptUInt(ctl, cmd, "timeout", &utimeout)) <= 0)
return ret;
/* Ensure that we can multiply by 1000 without overflowing. */
--
2.1.0