On Thu, Jan 30, 2014 at 10:55:49AM +0100, Cédric Bosdonnat wrote: > virConf now honours a VIR_CONF_FLAG_LXC_FORMAT flag to handle LXC > configuration files. The differences are that property names can > contain '.' character and values are all strings without any bounding > quotes. > > Provide a new virConfWalk function calling a handler on all non-comment > values. This function will be used by the LXC conversion code to loop > over LXC configuration lines. > > +/** > + * virConfWalk: > + * @conf: a configuration file handle > + * @callback: the function to call to process each entry > + * @data: obscure data passed to callback > + * > + * Walk over all entries of the configuration file and run the callback > + * for each with entry name, value and the obscure data. > + * > + * Returns 0 on success, or -1 on failure. > + */ > +int virConfWalk(virConfPtr conf, > + virConfWalkCallback callback, > + void *data) Nit-pick: s/data/opaque/ for more common naming convention here and in the header file decl later too. > +{ > + virConfEntryPtr cur; > + > + if (!conf) > + return 0; > + > + cur = conf->entries; > + while (cur != NULL) { > + if (cur->name && cur->value && > + callback(cur->name, cur->value, data) < 0) > + return -1; > + cur = cur->next; > + } > + return 0; > +} > > /** > * virConfWriteFile: > > +typedef int (*virConfWalkCallback)(const char* name, > + virConfValuePtr value, > + void *data); s/data/opaque/ > + > virConfPtr virConfNew (void); > virConfPtr virConfReadFile (const char *filename, unsigned int flags); > virConfPtr virConfReadMem (const char *memory, > @@ -91,6 +98,9 @@ virConfValuePtr virConfGetValue (virConfPtr conf, > int virConfSetValue (virConfPtr conf, > const char *setting, > virConfValuePtr value); > +int virConfWalk(virConfPtr conf, > + virConfWalkCallback callback, > + void *data); s/data/opaque/ ACK with the nit-pick fixed. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list