X-Git-Url: https://roy.marples.name/git diff --git a/resolvconf b/resolvconf index 9c630ae..55e6214 100755 --- a/resolvconf +++ b/resolvconf @@ -1,10 +1,29 @@ #!/bin/sh # Copyright 2006 Gentoo Foundation # Copyright 2007 Roy Marples -# Distributed under the terms of the GNU General Public License v2 +# All rights reserved -# Written by Roy Marples (roy@marples.name) -# Based on Debian resolvconf by Thomas Hood +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. argv0="$0" @@ -200,13 +219,17 @@ fi if [ ! -d "${IFACEDIR}" ]; then if [ ! -d "${VARDIR}" ]; then if [ -L "${VARDIR}" ]; then - DIR="$(readlink -f "${VARDIR}")" - [ -z "${DIR}" ] && DIR="$(readlink "${VARDIR}")" + DIR="$(readlink "${VARDIR}")" + # Change to /etc as link maybe relative + cd "${VARDIR%/*}" + if ! mkdir -m 0755 -p "${DIR}"; then + error_exit "Failed to create needed directory ${DIR}" + fi + else + if ! mkdir -m 0755 -p "${VARDIR}"; then + error_exit "Failed to create needed directory ${VARDIR}" + fi fi - # Change to /etc as link maybe relative - cd "${VARDIR%/*}" - mkdir -m 0755 -p "${DIR}" \ - || error_exit "Failed to create needed directory ${DIR}" fi mkdir -m 0755 -p "${IFACEDIR}" || \ error_exit "Failed to create needed directory ${IFACEDIR}" @@ -215,18 +238,24 @@ else if [ "x${CMD}" = "x-a" -o "x${CMD}" = "x-d" ]; then cd "${IFACEDIR}" for iface in ${IFACE}; do - rm -f "${iface}" + rm -f "${iface}" || exit $? done fi fi if [ "x${CMD}" = "x-a" ]; then # Create our resolv.conf file - cat >"${IFACEDIR}"/"${IFACE}" + cat >"${IFACEDIR}"/"${IFACE}" || exit $? fi +retval=0 for x in "${UPDATED}"/*; do - [ -e "${x}" ] && "${x}" "${CMD}" "${IFACE}" + if [ -e "${x}" ]; then + "${x}" "${CMD}" "${IFACE}" + retval=$((${retval} + $?)) + fi done +exit ${retval} + # vim: set ts=4 :