* libvirt.spec.in: BuildRequires: /sbin/iptables and
run configure with the --with-init-script and
--with-qemud-pid-file parameters.
* configure.in: it's --with-qemud-pid-file, not
--with-pid-file
* acinclude.m4: add LIBVIRT_COMPILE_WARNINGS, copied from
GNOME but with a few more flags we'd been using.
* configure.in: use that instead of setting CFLAGS
directly.
* proxy/Makefile.am, python/Makefile.am, qemud/Makefile.am,
src/Makefile.am, tests/Makefile.am: use $(WARN_CFLAGS)
* 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/libvirtd.in: add init script for libvirt_qemud
* qemud/Makefile.am: install it unless we were configured
with --with-init-scripts=none
* configure.in: add --with-init-scripts to allow us
have different flavour init scripts
* qemud/qemud.c: add --pid-file and default to writing
out a PID file to /var/run/libvirt_qemud.pid in daemon
mode.
* configure.in: add --with-pid-file arg
* qemud/Makefile.am: install libvirt_qemud in /usr/sbin
instead of /usr/libexec
* src/Makefile.am, src/qemu_internal.c: pass the correct
path to libvirt
* qemud/internal.h: put the config directory paths in
an array in order to make them easier to initialize,
but still expose pointers to each of them as members
in the server struct.
* qemud/qemud.c: cleanup the config directory path
initialization.
* 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.
* include/libvirt/libvirt.h.in, src/libvirt.c add
virDomainGetAutostart(), virDomainSetAutostart(),
virNetworkGetAutostart() and virNetworkSetAutostart().
* src/libvirt_sym.version: export the API
* src/driver.h: add methods to the driver vtables.
* src/proxy_internal.c, src/qemu_internal.c,
src/test.c, src/xen_internal.c, src/xend_internal.c,
src/xm_internal.c, src/xs_internal.c: set those
methods to NULL
* 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.
Fix a few leaks
* qemud/qemud.c: qemudCleanup(): free the socket
structures
* qemud/conf.c: fix various leaks in the xml parsing
* qemud/iptables.c: fix a typo causing a leak
* qemud/qemud.c: clean up qemudInitialize() and qemudListen()
so as to coalesce the two "system vs. user" code paths and
fix up some problems noticed by dan.
* 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.
* qemud/internal.h, qemud/qemud.c: improve signal handling
and handle SIGHUP by shutting down all guests and networks
and re-loading configs, and handle SIGINT and SIGTERM
by shutting down cleanly.