* qemud/conf.c: check for malloc failure in GenerateXML()
and GenerateNetworkXML()
* qemud/driver.c: free the XML output after returning it
from the DumpXML() commands.
* qemud/driver.c: maintain the autostart flag on disk
using symlinks from the "autostart" directories to
the corresponding config files.
* qemud/internal.h: add paths to the autostart links
to the vm/network structures and paths to the autostart
dirs to the server struct.
* qemud/qemud.c: initialize the server autostart dir
patches.
* qemud/conf.h: expose qemudEnsureDir()
* qemud/conf.c: check the autostart symlinks when
loading config files at startup.
* qemud/protocol.h: add the (domain/network)(Get/Set)Autostart
requests and replies to the protocol.
* src/qemu_internal.c: hookup the qemu driver autostart
methods
* qemud/dispatch.c, qemud/driver.[ch], internal.h: add
the daemon side, but just set an in-memory autostart
flag for now.
* qemud/conf.[ch]: significantly re-factor qemudLoadConfigXML()
so that "parse the XML", "assign the def to a VM" and
"save the XML" operations are in separate functions.
Add qemudRemoveInactiveVM() and qemudRemoveInactiveNetwork().
Report errors when loading config files at startup. Check
that a domain/network's name matches the config filename.
* qemud/driver.c: update the Create() and Define() functions
to explicitly parse/assign/save. Also, fix bug where if
Create() failed, we would free the VM without removing it
from the inactive list.
* qemud/qemud.c: use qemudRemoveInactiveVM/Network()
* qemud/driver.[ch], qemud/dispatch.c: fix the fact that
qemudDispatchDomainStart() doesn't report an error if the uuid
lookup fails and also move the uuid lookup into the driver
so that it matches the way we do Destroy().
* qemud/conf.c, qemud/driver.c, qemud/internal.h,
qemud/qemud.c: Merge the ->activevms and ->inactivevms
into a single ->vms list in order to make things
easier to manage. Likewise for networks. Also add
qemudIsActiveVM() and qemudIsActiveNetwork() inline
functions.
* qemud/qemud.c, qemud/dispatch.c, qemud/internal.h
qemud/conf.c, qemud/driver.c, configure.in: add a
qemudLog() function which uses syslog() if we're in daemon
mode, doesn't output INFO/DEBUG messages unless the
verbose flag is set and doesn't output DEBUG messages
unless compiled with --enable-debug. Also, make a first
pass through fatal errors and add error messages for them.
* include/libvirt/libvirt.h.in, src/libvirt.c: add
virNetworkGetBridgeName() to allow finding out what
bridge to connect to in order to join a network.
* src/driver.h: add networkGetBridgeName() to vtable.
* qemud/protocol.h: add the request and reply to
the qemud protocol.
* qemud/dispatch.c, qemud/driver.[ch]: handle them
here.
* src/qemu_internal.c: implement GetBridgeName()
in the qemu driver.
* src/libvirt_sym.version: add new symbol.
* qemud/conf.[ch]: implement parsing and saving network
configs.
* qemud/driver.c: flesh out the stubs
* qemud/internal.h: add networks list etc. to
struct qemud_server
* qemud/qemud.c: add qemudStartNetworkDaemon() and
qemudShutdownNetworkDaemon() stubs.