[libvirt] [PATCH v2 REPOST 2/8] Qemu arbitrary command-line arguments.
Chris Lalancette
clalance at redhat.com
Fri Jul 2 13:01:44 UTC 2010
On 07/01/10 - 03:39:25PM, Eric Blake wrote:
> > src/qemu/qemu_conf.c | 14 +++++
> > src/qemu/qemu_conf.h | 11 ++++
> > src/qemu/qemu_driver.c | 150 ++++++++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 175 insertions(+), 0 deletions(-)
> >
> >
> > + if (def->namespaceData) {
> > + qemuDomainCmdlineDefPtr cmd;
> > +
> > + cmd = def->namespaceData;
> > + for (i = 0; i < cmd->num_args; i++)
> > + ADD_ARG_LIT(cmd->args[i]);
>
> It would be nice if we had the new task creation API stablized and
> implemented, but for now, this is reasonable.
>
> > + for (i = 0; i < n; i++) {
> > + cmd->env_name[cmd->num_env] = virXMLPropString(nodes[i], "name");
> > + if (cmd->env_name[cmd->num_env] == NULL) {
> > + qemuReportError(VIR_ERR_INTERNAL_ERROR,
> > + "%s", _("No qemu environment name specified"));
> > + goto error;
>
> Do we need to validate that the resulting name is valid (starts with a
> letter, and contains only alphanumeric and _)? arg and env_value can
> obviously be arbitrary strings, but not env_name.
Hm, interesting, I didn't know that rule about environment variable names.
That is a good check to make, I'll add it.
>
> > +static int qemuDomainDefNamespaceFormatXML(virBufferPtr buf,
> > + void *nsdata)
> > +{
> > + qemuDomainCmdlineDefPtr cmd = nsdata;
> > + unsigned int i;
> > +
> > + if (cmd->num_args || cmd->num_env)
> > + virBufferAddLit(buf, " <qemu:commandline>\n");
>
> Rather than check cmd->num_args and cmd->num_env here and again below,
> why not just do an early return 0 here?
Yeah, I can invert the logic and do that instead. Since I'll be respinning
the patch for the above environment variable checking, I'll change it.
--
Chris Lalancette
More information about the libvir-list
mailing list