On Thu, May 21, 2015 at 11:40:26 +0200, Andrea Bolognani wrote:
This will allow us to use vshError() to report errors from inside
vshCommandOpt*(), instead of replicating the same logic and error
messages all over the place.
We also have more context inside the vshCommandOpt*() functions,
for example the actual value used on the command line, which means
we can produce more detailed error messages.
---
tools/virsh-domain-monitor.c | 90 +++----
tools/virsh-domain.c | 598 +++++++++++++++++++++----------------------
tools/virsh-host.c | 46 ++--
tools/virsh-interface.c | 14 +-
tools/virsh-network.c | 34 +--
tools/virsh-nodedev.c | 6 +-
tools/virsh-pool.c | 26 +-
tools/virsh-secret.c | 8 +-
tools/virsh-snapshot.c | 88 +++----
tools/virsh-volume.c | 34 +--
tools/virsh.c | 113 ++++----
tools/virsh.h | 77 +++---
12 files changed, 571 insertions(+), 563 deletions(-)
...
diff --git a/tools/virsh.c b/tools/virsh.c
index 4425774..9f94b75 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
...
-vshCommandOpt(const vshCmd *cmd, const char *name, vshCmdOpt **opt,
+vshCommandOpt(vshControl *ctl ATTRIBUTE_UNUSED, const vshCmd *cmd,
+ const char *name, vshCmdOpt **opt,
bool needData)
So this helper is not using ctl nor reporting any errors. Even in the
next patch.
{
vshCmdOpt *candidate = cmd->opts;
...
@@ -1829,11 +1831,12 @@ vshCommandOptScaledInt(const vshCmd *cmd,
const char *name,
* option is present without actually using that data.
*/
bool
-vshCommandOptBool(const vshCmd *cmd, const char *name)
+vshCommandOptBool(vshControl *ctl, const vshCmd *cmd,
+ const char *name)
{
vshCmdOpt *dummy;
- return vshCommandOpt(cmd, name, &dummy, false) == 1;
+ return vshCommandOpt(ctl, cmd, name, &dummy, false) == 1;
And vshCommandOptBool is designed not to report any error. I'm not a big
fan of changing half of virsh by changing the prototype and then not
using the parameter at all.
}
/**
I didn't go through the rest of the changes, but reporting malformed
integers right in the parser makes sense to me.
Peter