]> xenbits.xensource.com Git - libvirt.git/commitdiff
bridge: Add --dhcp-no-override option to dnsmasq
authorJiri Denemark <jdenemar@redhat.com>
Wed, 11 Aug 2010 18:25:09 +0000 (20:25 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 12 Aug 2010 14:38:19 +0000 (16:38 +0200)
--dhcp-no-override description from dnsmasq man page:

      Disable  re-use  of  the  DHCP servername and filename fields as
      extra option space. If it can, dnsmasq moves the boot server and
      filename  information  (from  dhcp-boot)  out of their dedicated
      fields into DHCP options. This make extra space available in the
      DHCP  packet  for options but can, rarely, confuse old or broken
      clients. This flag forces "simple and safe" behaviour  to  avoid
      problems in such a case.

It seems some virtual network card ROMs are this old/buggy so let's add
--dhcp-no-override as a workaround for them. We don't use extra DHCP
options so this should be safe. The option was added in dnsmasq-2.41,
which becomes the minimum required version.

libvirt.spec.in
src/network/bridge_driver.c

index c666a7043b28914ffd340145806d303854c80851..cc3e8e27bb660502d7a5016b9d5c4d4e1336a8c0 100644 (file)
@@ -200,7 +200,7 @@ Requires: %{name}-client = %{version}-%{release}
 Requires: bridge-utils
 %endif
 %if %{with_network}
-Requires: dnsmasq
+Requires: dnsmasq >= 2.41
 Requires: iptables
 %endif
 %if %{with_nwfilter}
@@ -298,7 +298,7 @@ BuildRequires: avahi-devel
 BuildRequires: libselinux-devel
 %endif
 %if %{with_network}
-BuildRequires: dnsmasq
+BuildRequires: dnsmasq >= 2.41
 %endif
 BuildRequires: bridge-utils
 %if %{with_sasl}
index f247a0f9b19d1932566a0c385e26721e0b1732b8..d6d3068afb647088a1fdc10b4db0e93fe7f3d9b9 100644 (file)
@@ -427,6 +427,8 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network,
         (2 * network->def->nranges) + /* --dhcp-range 10.0.0.2,10.0.0.254 */
         /* --dhcp-lease-max=xxx if needed */
         (network->def->nranges ? 1 : 0) +
+        /* --dhcp-no-override if needed */
+        (network->def->nranges ? 1 : 0) +
         /* --dhcp-hostsfile=/var/lib/dnsmasq/$NAME.hostsfile */
         (network->def->nhosts > 0 ? 1 : 0) +
         /* --enable-tftp --tftp-root /srv/tftp */
@@ -497,6 +499,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network,
     if (network->def->nranges > 0) {
         snprintf(buf, sizeof(buf), "--dhcp-lease-max=%d", nbleases);
         APPEND_ARG(*argv, i++, buf);
+        APPEND_ARG(*argv, i++, "--dhcp-no-override");
     }
 
     if (network->def->nhosts > 0) {