[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 for-4.5 2/2] xl: add support for 'channels'
On 22 Sep 2014, at 17:25, Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> wrote: > David Scott writes ("[PATCH v5 for-4.5 2/2] xl: add support for 'channels'"): >> This adds support for channel declarations of the form: > > This looks pretty good to me. I have some small complaints: > >> +Each B<CHANNEL_SPEC_STRING> is a comma-separated list of C<KEY=VALUE> >> +settings, from the following list: > > You should specify that spaces are stripped, and where. > > You should also probably mention that there is no way to include a > comma, or AFAICT leading/trailing whitespace, in any of the values of > these fields. Good point. > >> +static char *xstrdup(const char *x) >> +{ >> + char *r; >> + r = strdup(x); > > Breaking this kind of thing out into a separate patch would make > review a bit easier. This applies the movement of replace_string and > arguably to the introduction of the trim and split functions. OK. I’ll split these out for review and make it easy to squash them back together (if that’s desired). > >> +typedef int (*char_predicate_t)(const int c); > > You need a comment here about the bizarre interface to ctype.h macros. > See the comment by the CTYPE macro in libxl_internal.h. > >> +static void trim(char_predicate_t predicate, const char *input, char >> **output) > ... >> + while ((*p != '\000') && (predicate(*p))) > > And these calls to predicate() are wrong because they don't take > account of the ctype API bug. (Please don't ask why they left this > ridiculous landmine here…) Thanks, I’d never noticed that before! > > I haven't reviewed your string fiddling in detail. It would probaby > be good for someone to do so because this kind of thing can contain > security bugs (which are relevant if anyone constructs an xl domain > config out of laundered pieces some of which are supplied by an > attacker). > >> +int main_channellist(int argc, char **argv) >> +{ > > What is the way to get the channel list in machine-readable JSON > format ? ‘xl list —long’ (via list_domains_details) can display the json: $ sudo xl list --long [ { "domid": 30, ... "channels": [ { "devid": 0, "name": "foo", "connection.socket": { "path": "/var/lib/libvirt/qemu/s-4-VM.agent" } } ], ... There’s no option to ‘xl channel-list’ to show them in JSON. I notice the xl hotplug commands have a ‘dryrun’ option which dumps the JSON of the device they would have added, but I’ve not implemented channel hotplug (yet) Cheers, Dave _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |