From 656412d1a3806d94b280a9955df528faad6aa8e9 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 8 Jan 2007 21:33:53 +0000
Subject: [PATCH] Forward port whiterussian resolv.conf changes
 /etc/resolv.conf links to /tmp/resolv.conf /tmp/resolv.conf links to
 /tmp/resolv.conf.auto by default (which is where the ISPs nameserver is in)
 When dnsmasq starts, it replaces /tmp/resolv.conf with a file pointing to
 127.0.0.1

SVN-Revision: 6043
---
 package/base-files/Makefile                              | 1 +
 package/base-files/files/etc/init.d/boot                 | 1 +
 package/base-files/files/etc/resolv.conf                 | 2 --
 package/base-files/files/lib/network/config.sh           | 4 ++--
 package/base-files/files/usr/share/udhcpc/default.script | 2 +-
 package/dnsmasq/files/dnsmasq.conf                       | 2 +-
 package/dnsmasq/files/dnsmasq.init                       | 8 +++++++-
 package/ppp/Makefile                                     | 2 +-
 package/ppp/files/ppp.sh                                 | 2 +-
 9 files changed, 15 insertions(+), 9 deletions(-)
 delete mode 100644 package/base-files/files/etc/resolv.conf

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 16c6dc1eb8..14917f683b 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -115,6 +115,7 @@ define Package/base-files$(TARGET)/install
 	rm -f $(1)/var
 	ln -sf /tmp $(1)/var
 	mkdir -p $(1)/etc
+	ln -sf /tmp/resolv.conf $(1)/etc/resolv.conf
 	$(call Package/base-files/install-target,$(1))
 	for conffile in $(1)/etc/config/*; do \
 		if [ -f "$$$$conffile" ]; then \
diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index c583652347..db7ec8cc3a 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -15,6 +15,7 @@ start() {
 	mkdir -p /var/lock
 	touch /var/log/wtmp
 	touch /var/log/lastlog
+	ln -s /tmp/resolv.conf.auto /tmp/resolv.conf
 	[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
 	
 	# manually trigger hotplug before loading modules
diff --git a/package/base-files/files/etc/resolv.conf b/package/base-files/files/etc/resolv.conf
deleted file mode 100644
index 9617eacda7..0000000000
--- a/package/base-files/files/etc/resolv.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-nameserver 127.0.0.1
-search lan
diff --git a/package/base-files/files/lib/network/config.sh b/package/base-files/files/lib/network/config.sh
index 845b33eb7e..f3ead6a791 100755
--- a/package/base-files/files/lib/network/config.sh
+++ b/package/base-files/files/lib/network/config.sh
@@ -120,9 +120,9 @@ setup_interface() {
 			$DEBUG ifconfig "$iface" "$ipaddr" netmask "$netmask"
 			$DEBUG ifconfig "$iface" inet6 add "$ip6addr" 
 			[ -z "$gateway" ] || route add default gw "$gateway"
-			[ -z "$dns" -o -f /tmp/resolv.conf ] || {
+			[ -z "$dns" -o -f /tmp/resolv.conf.auto ] || {
 				for ns in $dns; do
-					echo "nameserver $ns" >> /tmp/resolv.conf
+					echo "nameserver $ns" >> /tmp/resolv.conf.auto
 				done
 			}
 
diff --git a/package/base-files/files/usr/share/udhcpc/default.script b/package/base-files/files/usr/share/udhcpc/default.script
index 53c8faf316..f39d21ed8c 100755
--- a/package/base-files/files/usr/share/udhcpc/default.script
+++ b/package/base-files/files/usr/share/udhcpc/default.script
@@ -3,7 +3,7 @@
 . /etc/functions.sh
 include /lib/network
 
-RESOLV_CONF="/tmp/resolv.conf"
+RESOLV_CONF="/tmp/resolv.conf.auto"
 
 hotplug_event() {
 	scan_interfaces
diff --git a/package/dnsmasq/files/dnsmasq.conf b/package/dnsmasq/files/dnsmasq.conf
index 8a51f8445d..8a8191b635 100644
--- a/package/dnsmasq/files/dnsmasq.conf
+++ b/package/dnsmasq/files/dnsmasq.conf
@@ -8,7 +8,7 @@ localise-queries
 local=/lan/
 domain=lan
 expand-hosts
-resolv-file=/tmp/resolv.conf
+resolv-file=/tmp/resolv.conf.auto
 
 @ifdef dhcp_enable
 dhcp-range=@@start@@,@@end@@,@@netmask@@,@@lease@@
diff --git a/package/dnsmasq/files/dnsmasq.init b/package/dnsmasq/files/dnsmasq.init
index 7afcee420e..5e72fd014f 100644
--- a/package/dnsmasq/files/dnsmasq.init
+++ b/package/dnsmasq/files/dnsmasq.init
@@ -50,7 +50,13 @@ start() {
 		[ -z "$wan_proto" -o "$wan_proto" = "none" ] || echo "@define wan_ifname $wan_ifname"
 	
 		cat /etc/dnsmasq.conf
-	) | awk -f /lib/config/template.awk | dnsmasq -C /proc/self/fd/0
+	) | awk -f /lib/config/template.awk | dnsmasq -C /proc/self/fd/0 && {
+		rm -f /tmp/resolv.conf
+		cat > /tmp/resolv.conf <<EOF
+nameserver 127.0.0.1
+search lan
+EOF
+	}
 }
 
 stop() {
diff --git a/package/ppp/Makefile b/package/ppp/Makefile
index 2938b915ef..dc1f37b0a9 100644
--- a/package/ppp/Makefile
+++ b/package/ppp/Makefile
@@ -124,7 +124,7 @@ define Package/ppp/install
 	$(INSTALL_BIN) ./files/etc/ppp/ip-down $(1)/etc/ppp/
 	$(INSTALL_DIR) $(1)/etc/ppp/ip-down.d
 	$(INSTALL_DATA) ./files/etc/ppp/options $(1)/etc/ppp/
-	ln -sf /tmp/resolv.conf $(1)/etc/ppp/resolv.conf
+	ln -sf /tmp/resolv.conf.auto $(1)/etc/ppp/resolv.conf
 endef
 	
 define Package/ppp-mod-pppoa/install
diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh
index 6fd40fbe1e..0bd75fc0a7 100644
--- a/package/ppp/files/ppp.sh
+++ b/package/ppp/files/ppp.sh
@@ -25,7 +25,7 @@ start_pppd() {
 	[ "$interval" != "$keepalive" ] || interval=5
 	
 	config_get demand "$cfg" demand
-	[ -n "$demand" ] && echo "nameserver 1.1.1.1" > /tmp/resolv.conf
+	[ -n "$demand" ] && echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto
 	/usr/sbin/pppd "$@" \
 		${keepalive:+lcp-echo-interval $interval lcp-echo-failure ${keepalive%%[, ]*}} \
 		${demand:+precompiled-active-filter /etc/ppp/filter demand idle }${demand:-persist} \
-- 
2.30.2