diff options
Diffstat (limited to 'libc.in')
-rw-r--r-- | libc.in | 24 |
1 files changed, 13 insertions, 11 deletions
@@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2009 Roy Marples +# Copyright (c) 2007-2011 Roy Marples # All rights reserved # libc subscriber for resolvconf @@ -30,6 +30,8 @@ SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ IFACEDIR="$VARDIR/interfaces" +NL=" +" # sed may not be available, and this is faster on small files key_get_value() @@ -109,7 +111,7 @@ case "${resolv_conf_passthrough:-NO}" in fi done [ -z "$newest" ] && exit 0 - newconf="$(cat "$newest")\n" + newconf="$(cat "$newest")$NL" ;; *) [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)" @@ -118,13 +120,13 @@ case "${resolv_conf_passthrough:-NO}" in newns="$(uniqify $name_servers $NS $name_servers_append)" # Hold our new resolv.conf in a variable to save on temporary files - newconf="# Generated by resolvconf\n" + newconf="# Generated by resolvconf$NL" if [ -n "$resolv_conf_head" ]; then - newconf="$newconf$resolv_conf_head\n" + newconf="$newconf$resolv_conf_head$NL" fi - [ -n "$newsearch" ] && newconf="${newconf}search $newsearch\n" + [ -n "$newsearch" ] && newconf="${newconf}search $newsearch$NL" for n in $newns; do - newconf="${newconf}nameserver $n\n" + newconf="${newconf}nameserver $n$NL" done # Now get any configured options @@ -135,22 +137,22 @@ case "${resolv_conf_passthrough:-NO}" in for opt in $(uniqify $opts); do newconf="${newconf} $opt" done - newconf="$newconf\n" + newconf="$newconf$NL" fi if [ -n "$resolv_conf_tail" ]; then - newconf="$newconf$resolv_conf_tail\n" + newconf="$newconf$resolv_conf_tail$NL" fi ;; esac # Check if the file has actually changed or not if [ -e "$resolv_conf" ]; then - [ "$(cat "$resolv_conf")" = "$(printf "$newconf")" ] && exit 0 + [ "$(cat "$resolv_conf")" = "$(printf %s "$newconf")" ] && exit 0 fi # Create our resolv.conf now -(umask 022; printf "$newconf" >"$resolv_conf") +(umask 022; printf %s "$newconf" >"$resolv_conf") eval $libc_restart retval=0 @@ -160,7 +162,7 @@ for script in "$LIBEXECDIR"/libc.d/*; do if [ -x "$script" ]; then "$script" "$@" else - (. "$script" "$@") + (. "$script") fi retval=$(($retval + $?)) fi |