
Hi Daniel,
This patch alone not, but this patch + the one in my first mail (see https://www.redhat.com/archives/libvir-list/2008-November/msg00457.html) together make it work for me. The first patch fixes the autostart order, the second one adds the necessary conn structure.
Oh yes, I totally missed the patch in your first mail. The first patch is definitely correct and I'll apply that shortly.
I just added some documentation (same as in virInitialize) to make sure this bug does not get introduced again. New version attached.
While your second patch is also functionally OK, I'm not entirely happy with creating a connection object deep inside the QEMU driver code.
Yeah, that was exactly my thought too.
So I'm going to think about whether there's a better way todo that bit.
I looked through the rest of the qemu-initialization and it looks like this is the only point where the conn-object is needed. So a solution would be to directly access the network driver functions. But on the other hand these functions seem all to imply that there is a valid conn available. So we would have to change that, at least for the lookup-by-name case. But I'm feeling too new in libvirt to actually do design decisions, so it's your call... Kind regards, Gerd diff -r -u libvirt-0.5.0.orig/qemud/qemud.c libvirt-0.5.0/qemud/qemud.c --- libvirt-0.5.0.orig/qemud/qemud.c 2008-11-21 13:47:32.000000000 +0100 +++ libvirt-0.5.0/qemud/qemud.c 2008-12-01 12:21:37.000000000 +0100 @@ -755,28 +755,23 @@ virInitialize(); + /* + * Note that the order is important: the first ones have a higher + * priority when calling virStateInitialize. + */ #ifdef WITH_DRIVER_MODULES /* We don't care if any of these fail, because the whole point * is to allow users to only install modules they want to use. * If they try to use a open a connection for a module that * is not loaded they'll get a suitable error at that point */ - virDriverLoadModule("qemu"); - virDriverLoadModule("lxc"); - virDriverLoadModule("uml"); virDriverLoadModule("network"); virDriverLoadModule("storage"); virDriverLoadModule("nodedev"); + virDriverLoadModule("qemu"); + virDriverLoadModule("lxc"); + virDriverLoadModule("uml"); #else -#ifdef WITH_QEMU - qemuRegister(); -#endif -#ifdef WITH_LXC - lxcRegister(); -#endif -#ifdef WITH_UML - umlRegister(); -#endif #ifdef WITH_NETWORK networkRegister(); #endif @@ -786,6 +781,15 @@ #if defined(HAVE_HAL) || defined(HAVE_DEVKIT) nodedevRegister(); #endif +#ifdef WITH_QEMU + qemuRegister(); +#endif +#ifdef WITH_LXC + lxcRegister(); +#endif +#ifdef WITH_UML + umlRegister(); +#endif #endif virEventRegisterImpl(virEventAddHandleImpl, -- Address (better: trap) for people I really don't want to get mail from: james@cactusamerica.com