Commit Graph

47 Commits

Author SHA1 Message Date
Daniel P. Berrange
2dd21783ec Move code dealing with global startup/shutdown/reload into driver.c 2007-06-26 20:45:21 +00:00
Daniel P. Berrange
9f25d22a6f Move process lifecycle code from qemud.c to driver.c 2007-06-26 20:41:25 +00:00
Daniel P. Berrange
0cb54b45f1 Re-factoring event loop 2007-06-26 19:11:00 +00:00
Richard W.M. Jones
0bbe8da810 Some fixes for RPM builds:
Mon Jun 11 14:10:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>

	* libvirt.spec.in: BuildRequires gnutls-devel and
	  set the remote PIDfile when configuring.
	* qemud/Makefile.am: Distribute the Perl scripts.
	* qemud/qemud.c: Only use QEMUD_DEBUG when ENABLE_DEBUG
	  is defined.
2007-06-11 13:24:45 +00:00
Richard W.M. Jones
9172d0ec27 Mon Jun 11 12:49:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* qemud/Makefile.am, qemud/dispatch.c, qemud/dispatch.h,
	  qemud/internal.h, qemud/protocol.c,
	  qemud/protocol.h, qemud/protocol.x, qemud/qemud.c:
	  libvirt_qemud server-side modifications to use
	  XDR-based protocol instead of homebrew (Dan Berrange).
	  QEMUD server modified to dispatch calls from remote
	  clients (Richard Jones).  Added TLS support (Richard Jones).
	  Added TCP & IPv6 support (Richard Jones).
	  Additional configuration file, command-line handling, and
	  usage (Richard Jones).
	* qemud/conf.c: Remove unnecessary header file.
2007-06-11 12:04:54 +00:00
Daniel P. Berrange
f58ac222be Fixed missing return value checks on write 2007-05-18 19:00:37 +00:00
Daniel P. Berrange
85e9f9fb47 Added per-VM logging 2007-05-18 18:36:24 +00:00
Daniel P. Berrange
6a12fee135 Use --strict-order with dnsmasq 2007-05-02 15:51:14 +00:00
Daniel P. Berrange
19c6ddcce5 Fixed up IPtables rules to be more strict 2007-04-10 23:17:46 +00:00
Richard W.M. Jones
ad8bef84d1 Wed Apr 4 10:30:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* configure.in, qemud/Makefile.am: Set QEMUD_PID_FILE macro
	  correctly (expand ${prefix} in Makefile).
	* qemud/qemud.c: Add command line help.
	* ChangeLog: Remove a CVS '>>>>' conflict line which had
	  been committed inadvertently.
2007-04-04 09:32:00 +00:00
Mark McLoughlin
8ba930c380 Wed Mar 30 17:25:33 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/iptables.c: As suggested by danpb, make libvirt_qemud
        handle SIGHUP by re-loading the iptables rules.
2007-03-30 16:25:02 +00:00
Mark McLoughlin
42d4b85d86 Wed Mar 30 17:21:08 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/iptables.c: Remove the target interface parameter
        from iptablesPhysdevForward(). This rule is intended to
        allow frames to be forwarded across the bridge from the
        supplied bridge port. In this context, the --out parameter
        would match the outgoing bridge port, which will never
        be network->def->forwardDev.
2007-03-30 16:23:04 +00:00
Richard W.M. Jones
17d0bf6454 * qemud/qemud.c: If using FORTIFY_SOURCE, remove warning
warn_unused_result by counting errors found in signal
	  handler and logging them in the main loop.
2007-03-27 10:28:45 +00:00
Daniel Veillard
fb624fbecf * qemud/iptables.c qemud/qemud.c src/conf.c src/hash.c src/libvirt.c
src/virsh.c src/xm_internal.c: change malloc/memset(0) pairs to
  using calloc()
Daniel
2007-03-22 18:30:57 +00:00
Daniel P. Berrange
a534de5281 Improve support for virtual networking 2007-03-13 22:43:22 +00:00
Daniel P. Berrange
8cb208cd57 Fixed unlink of readonly mode socket 2007-03-06 16:51:48 +00:00
Daniel P. Berrange
b5dfaef4dc Wait for monitor at startup 2007-03-05 17:15:20 +00:00
Mark McLoughlin
868bcd72c7 Mon Mar 05 16:39:54 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/qemud.c: don't try and listen to a null socket
        path when run as a session daemon. Noticed by Rich Jones
2007-03-05 16:40:34 +00:00
Daniel P. Berrange
73048102c0 Autodetect QEMU version and adjust command line arg accordingly 2007-02-23 17:15:18 +00:00
Mark McLoughlin
d758313d67 Fri Feb 23 12:46:44 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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
2007-02-23 12:48:36 +00:00
Mark McLoughlin
08cfcae91b Fri Feb 23 09:03:19 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-23 09:10:28 +00:00
Mark McLoughlin
56d2857f95 Fri Feb 23 09:03:19 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-23 09:07:41 +00:00
Mark McLoughlin
d954480892 Fri Feb 23 08:41:34 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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()
2007-02-23 08:48:02 +00:00
Mark McLoughlin
6ecd4045aa Fri Feb 22 08:37:23 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-23 08:39:49 +00:00
Mark McLoughlin
1e20b80a91 Fri Feb 20 17:49:22 IST 2007 Mark McLoughlin <markmc@redhat.com>
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
2007-02-20 17:51:41 +00:00
Mark McLoughlin
c5b3181ad9 Fri Feb 20 16:49:53 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/conf.c, qemud/qemud.c: only create config dirs
        when actually trying to write out config.
2007-02-20 16:55:56 +00:00
Mark McLoughlin
28a07e4c80 Fri Feb 20 09:03:05 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-20 09:04:27 +00:00
Mark McLoughlin
96b89415a3 Fri Feb 19 16:59:18 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/qemud.c: don't shutdown guest and networks on
        SIGHUP
2007-02-19 17:00:05 +00:00
Mark McLoughlin
272639aaac Fri Feb 19 16:58:53 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/qemud.c: handle SIGQUIT.
2007-02-19 16:59:15 +00:00
Mark McLoughlin
cfa655f9b8 Fri Feb 16 18:28:32 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-16 18:30:55 +00:00
Mark McLoughlin
49fe28206a Fri Feb 16 18:26:55 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-16 18:28:17 +00:00
Mark McLoughlin
49dcc264e5 Fri Feb 16 18:24:08 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/qemud.c, qemud/bridge.c, qemud/iptables.c: fix
	our FD_CLOEXEC usage so that all fds which should be
	closed on exec are marked as such and that we leave
	exec() to do the actual closing.
2007-02-16 18:26:18 +00:00
Mark McLoughlin
80820ec7a9 Fri Feb 16 18:23:15 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/qemud.c: fix qemudEnableIpForwarding() to not leak
        an fd if writing to /proc/sys/net/ipv4/ip_forward fails.
2007-02-16 18:24:14 +00:00
Daniel P. Berrange
9d0fa40919 Remove mistaken includes for gnutls 2007-02-16 15:44:08 +00:00
Mark McLoughlin
f9f7aeb4b7 Thu Feb 15 15:56:32 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/conf.[ch], qemud/dispatch.c, qemud/internal.h,
	  qemud/qemud.c, qemud/driver.c: allow re-defining network
	configs; basically copying dan's patch for domains.
2007-02-15 16:00:16 +00:00
Daniel P. Berrange
6ad5b9d5fb Pre-create the toplevel libvirt config directory 2007-02-14 22:01:40 +00:00
Daniel P. Berrange
f9b263118f Moved qemu sockets/configs 2007-02-14 17:35:38 +00:00
Daniel P. Berrange
2e5e51151c Refactor to allowing changing config of active domains 2007-02-14 17:05:55 +00:00
Mark McLoughlin
3ea88b568d Tue Feb 14 16:23:25 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/iptables.[ch]: add code for managing iptables
        rules.

        * qemud/Makefile.am: add iptables.[ch].

        * qemud/qemud.c: add and remove iptables rules as
        appropriate.

        * qemud/conf.c: when starting a guess, add a rule
        allowing it to forward packets across the networks
        bridge.

        * qemud/internal.h: add iptables context ptr

        * configure.in: add --with-iptables-dir and
        --with-iptables-prefix to allow us to put our rules
        in a chain with the given prefix and save the rules
        in files in the given dir so as to integrate with
        the proposed "service iptables restart" solution
        in:

           https://bugzilla.redhat.com/227011
2007-02-14 16:26:42 +00:00
Mark McLoughlin
0c15bd8b87 Tue Feb 14 16:08:55 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/conf.c: add support for connecting a qemu
        guest to a bridge using a tap device in order to
        connect it to a virtual network.

        * qemud/internal.h: add <interface type="network">
        config and track tapfds so as to not close them
        on exec.

        * qemud/qemud.c: don't close tapfds on exec and
        disconnect the iface when the guest shuts down.
2007-02-14 16:09:37 +00:00
Mark McLoughlin
ee777358b8 Tue Feb 14 16:04:48 IST 2007 Mark McLoughlin <markmc@redhat.com>
* qemud/conf.c, qemud/internal.h: add dhcp config

        * qemud/qemud.c: start dnsmasq to provide dns/dhcp
        for virtual networks.
2007-02-14 16:05:29 +00:00
Mark McLoughlin
4e6c38e10f Tue Feb 14 16:02:23 IST 2007 Mark McLoughlin <markmc@redhat.com>
* configure.in: add --disable-bridge-params, check
        for libsysfs and various kernel headers

        * bridge.[ch]: add code for managing bridges

        * qemud/Makefile.am: add bridge.[ch] and link against
        libsysfs if enabled.

        * qemud/conf.c: add support for bridge config.

        * qemud/internal.h: add various bridging bits

        * qemud/qemud.c: implement qemudStartNetworkDaemon()
        and qemudShutdownNetworkDaemon().
2007-02-14 16:02:40 +00:00
Mark McLoughlin
2439573270 Tue Feb 14 15:55:02 IST 2007 Mark McLoughlin <markmc@redhat.com>
* 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.
2007-02-14 15:58:06 +00:00
Mark McLoughlin
db3ad7cba7 Tue Feb 14 14:54:25 EST 2007 Mark McLoughlin <markmc@redhat.com
* qemud/qemud.c: Re-factor out qemudExec() so that it can
        be used to launch dnsmasq.

        * qemud/conf.c: don't return argc from qemudBuildCommandLine()
        as exec() doesn't need it.
2007-02-14 15:54:47 +00:00
Mark McLoughlin
6a639b917f Tue Feb 14 14:40:52 EST 2007 Mark McLoughlin <markmc@redhat.com
* qemud/conf.c, qemud/dispatch.c, qemud/driver.c,
          qemud/qemud.c: include autoconf's config.h
2007-02-14 15:42:55 +00:00
Mark McLoughlin
f2041b7c75 Tue Feb 14 14:39:18 EST 2007 Mark McLoughlin <markmc@redhat.com
* conf.[ch]: rename from config.[ch] so we can use
        autoconf's config.h

        * Makefile.am: update

        * driver.c, qemud.c: upd.
2007-02-14 15:41:03 +00:00
Daniel P. Berrange
23ad665cb0 Added QEMU support 2007-02-14 01:40:09 +00:00