From: Mike Frysinger Date: Wed, 27 Feb 2013 06:01:43 +0000 (-0500) Subject: udhcpc: support resolv.conf symlinks X-Git-Tag: 1_22_0~288 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=39b8fb41c50e6ee0aaca81cde2a4dec98d45ef9a;p=oweals%2Fbusybox.git udhcpc: support resolv.conf symlinks Often it is desirable to have /etc/ be on read-only storage (well, the whole rootfs) but have things like /etc/resolv.conf be symlinks to a writable location. Tweak the simple script to support that. Signed-off-by: Mike Frysinger --- diff --git a/examples/udhcp/simple.script b/examples/udhcp/simple.script index 40ee73822..d42f2d3d5 100755 --- a/examples/udhcp/simple.script +++ b/examples/udhcp/simple.script @@ -34,13 +34,17 @@ case "$1" in fi echo "Recreating $RESOLV_CONF" - echo -n > $RESOLV_CONF-$$ - [ -n "$domain" ] && echo "search $domain" >> $RESOLV_CONF-$$ + # If the file is a symlink somewhere (like /etc/resolv.conf + # pointing to /run/resolv.conf), make sure things work. + realconf=$(realpath "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF") + tmpfile="$realconf-$$" + > "$tmpfile" + [ -n "$domain" ] && echo "search $domain" >> "$tmpfile" for i in $dns ; do echo " Adding DNS server $i" - echo "nameserver $i" >> $RESOLV_CONF-$$ + echo "nameserver $i" >> "$tmpfile" done - mv $RESOLV_CONF-$$ $RESOLV_CONF + mv "$tmpfile" "$realconf" ;; esac