summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2013-11-04 22:40:56 +0000
committerJo-Philipp Wich <jow@openwrt.org>2013-11-04 22:40:56 +0000
commit5db9587b5f5d3a64fbd5f4c4a1f74f1a4fa65177 (patch)
treee20ceb08693417ba66addb650fa3f1ce626af4f1
parentd5555de5b0f65140791594ea485cd9528a58b560 (diff)
downloadmtk-20170518-5db9587b5f5d3a64fbd5f4c4a1f74f1a4fa65177.zip
mtk-20170518-5db9587b5f5d3a64fbd5f4c4a1f74f1a4fa65177.tar.gz
mtk-20170518-5db9587b5f5d3a64fbd5f4c4a1f74f1a4fa65177.tar.bz2
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
-rw-r--r--package/network/services/dnsmasq/Makefile2
-rw-r--r--package/network/services/dnsmasq/files/dnsmasq.init5
2 files changed, 5 insertions, 2 deletions
diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index ae3662b..02712bd 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_VERSION:=2.66
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init
index 561f89d..ca3bb52 100644
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -408,6 +408,9 @@ dhcp_domain_add() {
[ -n "$ip" ] || return 0
for name in $names; do
+ [ "${name%.*}" == "$name" ] && \
+ name="$name${DOMAIN:+.$DOMAIN}"
+
record="${record:+$record/}$name"
done
@@ -531,7 +534,7 @@ start_service() {
# add own hostname
[ $ADD_LOCAL_HOSTNAME -eq 1 ] && [ -n "$lanaddr" ] && {
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