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 < /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} \