Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Laine Stump 7892edc9cc network driver: Start dnsmasq even if no dhcp ranges/hosts are specified.
This fixes a regression introduced in commit ad48df, and reported on
the libvirt-users list:

  https://www.redhat.com/archives/libvirt-users/2011-March/msg00018.html

The problem in that commit was that we began searching a list of ip
address definitions (rather than just having one) to look for a dhcp
range or static host; when we didn't find any, our pointer (ipdef) was
left at NULL, and when ipdef was NULL, we returned without starting up
dnsmasq.

Previously dnsmasq was started even without any dhcp ranges or static
entries, because it's still useful for DNS services.

Another problem I noticed while investigating was that, if there are
IPv6 addresses, but no IPv4 addresses of any kind, we would jump out
at an ever higher level in the call chain.

This patch does the following:

1) networkBuildDnsmasqArgv() = all uses of ipdef are protected from
   NULL dereference. (this patch doesn't change indentation, to make
   review easier. The next patch will change just the
   indentation). ipdef is intended to point to the first IPv4 address
   with DHCP info (or the first IPv4 address if none of them have any
   dhcp info).

2) networkStartDhcpDaemon() = if the loop looking for an ipdef with
   DHCP info comes up empty, we then grab the first IPv4 def from the
   list. Also, instead of returning if there are no IPv4 defs, we just
   return if there are no IP defs at all (either v4 or v6). This way a
   network that is IPv6-only will still get dnsmasq listening for DNS
   queries.

3) in networkStartNetworkDaemon() - we will startup dhcp not just if there
   are any IPv4 addresses, but also if there are any IPv6 addresses.
2011-03-11 23:49:11 -05:00
.gnulib@c2090a84dc maint: update to latest gnulib 2011-03-03 08:04:27 -07:00
daemon remote-protocol: implement new BlkioParameters API 2011-03-10 17:54:12 -07:00
docs domain.rng vs. formatdomain.html#elementsUSB 2011-03-11 10:42:20 -07:00
examples maint: kill all remaining uses of old DEBUG macro 2011-02-21 08:46:52 -07:00
include Don't use INT64_MAX in libvirt.h because it requires stdint.h 2011-03-11 22:08:24 +01:00
m4 maint: update to latest gnulib 2010-11-17 10:13:12 -07:00
po Expose event loop implementation as a public API 2011-03-07 14:16:13 +00:00
python libvirt: add virDomain{Get,Set}BlkioParameters 2011-03-10 17:53:16 -07:00
src network driver: Start dnsmasq even if no dhcp ranges/hosts are specified. 2011-03-11 23:49:11 -05:00
tests Move event code out of the daemon/ into src/util/ 2011-03-07 14:16:13 +00:00
tools libvirt-guest.init: handle domain name with spaces 2011-03-11 11:24:44 -07:00
.dir-locals.el maint: whitespace cleanup 2011-02-09 11:18:06 -07:00
.gitignore autobuild.sh: use VPATH build 2011-02-21 09:27:05 -07:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap maint: update an email address preference 2010-08-10 08:13:22 -06:00
.x-sc_avoid_ctype_macros
.x-sc_avoid_if_before_free avoid a "make syntax-check" failure 2009-07-09 20:00:37 +02:00
.x-sc_avoid_write Introduce new APIs for spawning processes 2010-12-02 16:00:44 -07:00
.x-sc_bindtextdomain maint: update to latest gnulib 2010-11-17 10:13:12 -07:00
.x-sc_m4_quote_check syntax-check: enable more checks 2009-02-03 13:08:36 +00:00
.x-sc_po_check build: avoid false positive syntax-check failure 2010-10-19 09:28:35 -06:00
.x-sc_prohibit_always_true_header_tests build: update gnulib 2010-05-06 14:35:38 -06:00
.x-sc_prohibit_asprintf util: add virVasprintf 2010-12-02 11:23:15 -07:00
.x-sc_prohibit_close maint: reject raw close, popen in 'make syntax-check' 2011-01-29 10:36:47 -07:00
.x-sc_prohibit_empty_lines_at_EOF maint: update to latest gnulib 2011-03-03 08:04:27 -07:00
.x-sc_prohibit_fork_wrappers maint: reject raw close, popen in 'make syntax-check' 2011-01-29 10:36:47 -07:00
.x-sc_prohibit_gethostby Various syntax-check fixes. 2009-10-26 10:34:05 +01:00
.x-sc_prohibit_gethostname Add a new syntax-check rule for gethostname. 2009-10-26 10:34:27 +01:00
.x-sc_prohibit_gettext_noop build: fix syntax-check problems 2010-04-12 16:43:05 -06:00
.x-sc_prohibit_have_config_h
.x-sc_prohibit_HAVE_MBRTOWC
.x-sc_prohibit_nonreentrant Tighten up nonreentrant syntax-check. 2009-10-26 10:33:42 +01:00
.x-sc_prohibit_readlink Add a rule to check for uses of readlink. 2010-01-22 09:42:35 -05:00
.x-sc_prohibit_sprintf maint: avoid remaining sprintf uses 2010-11-17 10:13:12 -07:00
.x-sc_prohibit_strncpy Avoid checking against strncpy in virsh.c 2010-10-12 19:26:10 +02:00
.x-sc_prohibit_test_minus_ao build: fix syntax-check problems 2010-04-12 16:43:05 -06:00
.x-sc_prohibit_VIR_ERR_NO_MEMORY Various syntax-check fixes. 2009-10-26 10:34:05 +01:00
.x-sc_prohibit_xmlGetProp maint: prohibit most uses of xmlGetProp 2010-11-24 15:23:43 -07:00
.x-sc_require_config_h Various syntax-check fixes. 2009-10-26 10:34:05 +01:00
.x-sc_require_config_h_first Misc syntax-check fixes 2009-09-21 14:41:47 +01:00
.x-sc_trailing_blank
.x-sc_unmarked_diagnostics build: import latest gnulib 2010-04-02 10:18:55 -06:00
acinclude.m4 maint: turn on gcc logical-op checking 2010-07-28 15:25:36 +02:00
AUTHORS setmem: introduce a new libvirt API (virDomainSetMemoryFlags) 2011-03-10 15:02:58 -07:00
autobuild.sh autobuild.sh: use VPATH build 2011-02-21 09:27:05 -07:00
autogen.sh build: avoid problems with autogen.sh runs from tarball 2011-02-12 06:28:28 -07:00
bootstrap maint: support --no-git option during autogen.sh 2011-01-21 09:45:37 -07:00
bootstrap.conf maint: fix 'make dist' in VPATH build 2011-02-21 09:27:05 -07:00
cfg.mk qemu: Switch over command line capabilities to virBitmap 2011-02-24 12:10:00 +01:00
ChangeLog-old generate ChangeLog from git logs into distribution tarball 2009-07-08 16:17:51 +02:00
configure.ac Add check for kill() to fix build of cgroups on win32 2011-02-28 14:13:58 +00:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
HACKING maint: document dislike of mismatched if/else bracing 2011-01-05 11:05:28 -07:00
libvirt.pc.in
libvirt.spec.in Add logrotate support for libvirtd.log 2011-03-04 22:43:55 +08:00
Makefile.am build: distribute 'make syntax-check' tweaks 2011-02-09 12:34:32 -07:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw32-libvirt.spec.in Add dtrace static probes in libvirtd 2010-10-22 12:00:39 +01:00
README
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>