From: Laine Stump Date: Sat, 25 Jun 2011 05:14:38 +0000 (-0400) Subject: network: add domain to unqualified names defined with X-Git-Tag: v0.9.3-rc2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25171f607c23312eff16cc054886c4b7576e470b;p=thirdparty%2Flibvirt.git network: add domain to unqualified names defined with If a domain name is defined for a network, add the --expand-hosts option to the dnsmasq commandline. This results in the domain being added to any hostname that is defined in a dns element and contains no '.' characters (i.e. it is an "unqualified" hostname). Since PTR records are automatically created for any name defined in , the result of a PTR request will change from the unqualified name to the qualified name. This also has the same effect on any hostnames that dnsmasq reads from the host's /etc/hosts file. (In the case of guest hostnames that were learned by dnsmasq via DHCP requests, they were already getting the domain name added on, even without --expand-hosts). --- diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index aa170d60ac..5d5282c482 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -617,6 +617,10 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network, if (ipdef->nranges || ipdef->nhosts) virCommandAddArg(cmd, "--dhcp-no-override"); + /* add domain to any non-qualified hostnames in /etc/hosts or addn-hosts */ + if (network->def->domain) + virCommandAddArg(cmd, "--expand-hosts"); + if ((dctx = networkSaveDnsmasqHostsfile(ipdef, network->def->dns, network->def->name, false))) { if (dctx->hostsfile->nhosts) virCommandAddArgPair(cmd, "--dhcp-hostsfile", diff --git a/tests/networkxml2argvdata/nat-network-dns-hosts.argv b/tests/networkxml2argvdata/nat-network-dns-hosts.argv index dce075b1a2..2158df8702 100644 --- a/tests/networkxml2argvdata/nat-network-dns-hosts.argv +++ b/tests/networkxml2argvdata/nat-network-dns-hosts.argv @@ -1,3 +1,3 @@ -/usr/sbin/dnsmasq --strict-order --bind-interfaces --conf-file= \ ---except-interface lo --listen-address 192.168.122.1 \ ---addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\ +/usr/sbin/dnsmasq --strict-order --bind-interfaces --domain example.com \ +--conf-file= --except-interface lo --listen-address 192.168.122.1 \ +--expand-hosts --addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\ diff --git a/tests/networkxml2argvdata/nat-network-dns-hosts.xml b/tests/networkxml2argvdata/nat-network-dns-hosts.xml index 9a83fed17f..2180a5ddcd 100644 --- a/tests/networkxml2argvdata/nat-network-dns-hosts.xml +++ b/tests/networkxml2argvdata/nat-network-dns-hosts.xml @@ -3,6 +3,7 @@ 81ff0d90-c91e-6742-64da-4a736edb9a9c + host diff --git a/tests/networkxml2argvdata/netboot-network.argv b/tests/networkxml2argvdata/netboot-network.argv index 27ffaa1b06..78e873c951 100644 --- a/tests/networkxml2argvdata/netboot-network.argv +++ b/tests/networkxml2argvdata/netboot-network.argv @@ -2,5 +2,5 @@ --conf-file= --except-interface lo --listen-address 192.168.122.1 \ --dhcp-range 192.168.122.2,192.168.122.254 \ --dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases \ ---dhcp-lease-max=253 --dhcp-no-override --enable-tftp \ +--dhcp-lease-max=253 --dhcp-no-override --expand-hosts --enable-tftp \ --tftp-root /var/lib/tftproot --dhcp-boot pxeboot.img\ diff --git a/tests/networkxml2argvdata/netboot-proxy-network.argv b/tests/networkxml2argvdata/netboot-proxy-network.argv index 3e0c5a5fa1..5fe1b8ef1b 100644 --- a/tests/networkxml2argvdata/netboot-proxy-network.argv +++ b/tests/networkxml2argvdata/netboot-proxy-network.argv @@ -2,4 +2,5 @@ --conf-file= --except-interface lo --listen-address 192.168.122.1 \ --dhcp-range 192.168.122.2,192.168.122.254 \ --dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases \ ---dhcp-lease-max=253 --dhcp-no-override --dhcp-boot pxeboot.img,,10.20.30.40\ +--dhcp-lease-max=253 --dhcp-no-override --expand-hosts \ +--dhcp-boot pxeboot.img,,10.20.30.40\