dnsmasq: fix backward compatibility with existing configs

Changeset r36943 ("dnsmasq: use host-record instead of address") removed
the automatic domain expansion for config domain sections, this breaks
existing setups and alters the old behaviour in unexpected ways, therfore
restore behaviour of the current stable release.

Additionally handle fully qualified hostnames properly when setting up the
own hostrecord by stripping the local domain part form the given name
instead of unconditionally appending it, so that "example.lan" results
in "example example.lan" and not "example.lan example.lan.lan".

SVN-Revision: 38648
This commit is contained in:
Jo-Philipp Wich 2013-11-04 22:40:56 +00:00
parent d5555de5b0
commit 5db9587b5f
2 changed files with 5 additions and 2 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq PKG_NAME:=dnsmasq
PKG_VERSION:=2.66 PKG_VERSION:=2.66
PKG_RELEASE:=4 PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq

View File

@ -408,6 +408,9 @@ dhcp_domain_add() {
[ -n "$ip" ] || return 0 [ -n "$ip" ] || return 0
for name in $names; do for name in $names; do
[ "${name%.*}" == "$name" ] && \
name="$name${DOMAIN:+.$DOMAIN}"
record="${record:+$record/}$name" record="${record:+$record/}$name"
done done
@ -531,7 +534,7 @@ start_service() {
# add own hostname # add own hostname
[ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && { [ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && {
local hostname="$(uci_get system @system[0] hostname OpenWrt)" local hostname="$(uci_get system @system[0] hostname OpenWrt)"
dhcp_hostrecord_add "" "$hostname${DOMAIN:+.$DOMAIN $hostname}" "$lanaddr" dhcp_hostrecord_add "" "${hostname%.$DOMAIN}${DOMAIN:+.$DOMAIN ${hostname%.$DOMAIN}}" "$lanaddr"
} }
echo >> $CONFIGFILE echo >> $CONFIGFILE