On Fri, Jun 22, 2007 at 07:16:19AM -0400, Daniel Veillard wrote: > On Fri, Jun 22, 2007 at 02:48:38AM +0100, Daniel P. Berrange wrote: > > This is the 2nd biggest patch of the series. It is a major refactoring of > > the data structures, to split qemud_server into a smaller qemud_server > > and a new qemud_driver. > > > > conf.c | 251 ++++++++++---------- > > conf.h | 294 +++++++++++++++++++++++- > > dispatch.c | 295 ++++++++++-------------- > > driver.c | 733 ++++++++++++++++++++++++++++++++++--------------------------- > > driver.h | 98 +++----- > > internal.h | 236 ------------------- > > qemud.c | 50 ---- > > 7 files changed, 992 insertions(+), 965 deletions(-) > > [...] > > diff -r 4684eb84957d qemud/conf.h > > --- a/qemud/conf.h Thu Jun 21 16:14:19 2007 -0400 > > +++ b/qemud/conf.h Thu Jun 21 16:14:44 2007 -0400 > > @@ -24,15 +24,277 @@ > > #ifndef __QEMUD_CONF_H > > #define __QEMUD_CONF_H > [...] > > + > > +static inline int > > +qemudIsActiveVM(struct qemud_vm *vm) > > +{ > > + return vm->id != -1; > > +} > > + > > +static inline int > > +qemudIsActiveNetwork(struct qemud_network *network) > > +{ > > + return network->active; > > +} > > I'm not too fond of this, this assumes a compiler accepting the inlining > and or having code being defined in the config file. I way prefer a simple > macro, that's more portable. This was in the code already - I just moved it from internal.h to conf.h > > diff -r 4684eb84957d qemud/dispatch.c > > --- a/qemud/dispatch.c Thu Jun 21 16:14:19 2007 -0400 > > +++ b/qemud/dispatch.c Thu Jun 21 16:14:44 2007 -0400 > [...] > > +extern struct qemud_driver *qemu_driver; > > hum, is that a declaration or ar reference ? I'm alway a bit suspicious > of such construct, if shared it goes in the .h as extern, and without extern in > one .c , if not shared it should really be static. It is a reference. It is also an evil short term hack. The entire dispatch.c file is killed off in patch 20, so can ignore it. > > [...] > > diff -r 4684eb84957d qemud/driver.c > > --- a/qemud/driver.c Thu Jun 21 16:14:19 2007 -0400 > > +++ b/qemud/driver.c Thu Jun 21 16:26:12 2007 -0400 > > @@ -23,6 +23,8 @@ > > > > #include <config.h> > > > > +#define _GNU_SOURCE /* for asprintf */ > > + > > please no, I understand it's painful and error prone to do the calculation > of the target string lenght, but that's really not portable. Again just copying existing code here. > [...] > > + if (asprintf (&base, "%s/.libvirt/qemu", pw->pw_dir) == -1) { > > + qemudLog (QEMUD_ERR, "out of memory in asprintf"); > > + goto out_of_memory; > > + } > > + } > > plus it's for a path names, use a MAX_PATH buffer, snprintf in it and > the strdup() it. It won't be that much longuer and avoid the issue > [snip] > here too we are doing weird stuff to build paths, the erro code aren't checked > a single snprintf to a MAX_PATH buffer followed by an strdup() would be cleaner > IMHO. I understand it's not something added by the patch here, but probably > woth fixing since similar to previous. > > [...] > > + if (snprintf(server->logDir, PATH_MAX, "%s/.libvirt/qemu/log", pw->pw_dir) >= PATH_MAX) > > + goto snprintf_error; > > + > > So server->logDir is a PATH_MAX array embbeded in the structure, I'm sure > we don't need this and can allocate the string instead, no ? I'll re-visit all these config file / log file path strings later, so we don't mix up plain re-factoring with other changes. > > > if (asprintf (&base, "%s/.libvirt/qemu", pw->pw_dir) == -1) { > > qemudLog (QEMUD_ERR, "out of memory in asprintf"); > > return -1; > > } > > } > > one more here. > > > @@ -711,7 +691,6 @@ static struct qemud_server *qemudInitial > > } > > > > /* We don't have a dom-0, so start from 1 */ > > - server->nextvmid = 1; > > server->sigread = sigread; > > shouldn't the comment be removed too then ? Yes - it should be moved to the new place where nextvmid is initialized. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|