From 5db9587b5f5d3a64fbd5f4c4a1f74f1a4fa65177 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 4 Nov 2013 22:40:56 +0000 Subject: [PATCH] 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 --- package/network/services/dnsmasq/Makefile | 2 +- package/network/services/dnsmasq/files/dnsmasq.init | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile index ae3662b3f5..02712bdc7d 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 561f89d33d..ca3bb5248e 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