[libvirt] [PATCH 1/2]virsh: enable attatch-disk command option '--mode' accept two parameters
Chen Hanxiao
chenhanxiao at cn.fujitsu.com
Tue Oct 15 10:13:18 UTC 2013
> -----Original Message-----
> From: Peter Krempa [mailto:pkrempa at redhat.com]
> Sent: Tuesday, October 15, 2013 5:48 PM
> To: Chen Hanxiao; libvir-list at redhat.com
> Subject: Re: [libvirt] [PATCH 1/2]virsh: enable attatch-disk command
option
> '--mode' accept two parameters
>
> On 10/15/13 11:41, Chen Hanxiao wrote:
> >
> >
> >> -----Original Message-----
> >> From: Peter Krempa [mailto:pkrempa at redhat.com]
> >> Sent: Tuesday, October 15, 2013 4:58 PM
> >> On 10/15/13 05:54, Chen Hanxiao wrote:
> >>> From: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
> >> This won't work if you use "--mode readonly,asdf". Also indentation of
> >> the second line is off.
> >
> > If we use "--mode readonly,asdf", only 'readonly' will be recognized as
> > valid parameter.
>
> 'readonly' is valid, but as that condition is only checking the prefix
> of the @mode string to be 'readonly' or 'shareable' then you can write
> anything after that and the check won't trigger. If you are going to use
> a comma separated list here, you need to tokenize the string and check
> every item in the array.
Thanks for your kindly advice.
If we decide to keep this patch, I'll finish it as you mentioned above.
Thanks.
>
> >
> >>
> >>> + } else if (STRPREFIX(rest, "shareable")) {
> >>> + virBufferAddLit(&buf, " <shareable/>\n");
> >>> + }
> >>> + }
> >>> + }
> >>
> >> Hmmm, this is a very convoluted way to do stuff. I would recommend
doing
> >> the sanity check right and then you can do either:
> >>
> >> if (mode &&
> >> strstr(mode, "readonly"))
> >> virBufferAddLit(&buf, " <readonly/>\n");
> >>
> >> if (mode &&
> >> strstr(mode, "shareable"))
> >> virBufferAddLit...
> >>
> >
> > If we use strstr(), --mode XXshareableXX will take effect.
> > I try to let --mode accept: (readonly as A, shareable as B)
>
> If you make the argument check above bulletproof, which it isn't right
> now it will not bother you.
>
> Peter
More information about the libvir-list
mailing list