From baae35b9dcbbe609b02b594b04c6ec24767494df Mon Sep 17 00:00:00 2001 From: jvdias Date: Nov 15 2005 17:11:05 +0000 Subject: fix check mode with -cf in DHCPDARGS; check /var/lib/dhcpd/dhcpd.leases instead of /var/lib/dhcp/dhcpd.leases --- diff --git a/dhcpd.init b/dhcpd.init index d0fdf70..a1541f3 100644 --- a/dhcpd.init +++ b/dhcpd.init @@ -17,25 +17,38 @@ [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/sbin/dhcpd ] || exit 0 -CF='/etc/dhcpd.conf' -if [[ "$DHCPDARGS" = *-cf* ]]; then - CF=`echo $DHCPDARGS | sed 's/^.*-cf[\ \ ]*//;s/[\ \ ].*$//';`; -fi; + +cfOption() +{ let i=0; + for a in $*; + do ((++i)); + if [ $a = -cf ]; then + ((++i)); + eval 'echo $'$i; + elif [[ $a = -cf* ]]; then + echo ${a#-cf}; + fi; + done; +} + +CF=`cfOption $DHCPDARGS` +if [ -z "$CF" ]; then + CF='/etc/dhcpd.conf'; +fi + [ -f "$CF" ] || exit 0 -if [ ! -f /var/lib/dhcp/dhcpd.leases ] ; then - touch /var/lib/dhcp/dhcpd.leases - [ -x /sbin/restorecon ] && [ -d /selinux ] && /sbin/restorecon /var/lib/dhcp/dhcpd.leases +if [ ! -f /var/lib/dhcpd/dhcpd.leases ] ; then + mkdir -p /var/lib/dhcpd + touch /var/lib/dhcpd/dhcpd.leases + [ -x /sbin/restorecon ] && [ -d /selinux ] && /sbin/restorecon /var/lib/dhcp/dhcpd.leases >/dev/null 2>&1 fi + RETVAL=0 prog="dhcpd" configtest() -{ - CFA='' - if [[ "$DHCPDARGS" = *-cf* ]]; then - CFA=`echo $DHCPDARGS | sed 's/^.*-cf[\ \ ]*/-cf/;s/[\ \ ].*$//;s/-cf/-cf /'`; - fi; - /usr/sbin/dhcpd -q -t $CFA +{ + /usr/sbin/dhcpd -q -t -cf $CF return $? } @@ -98,7 +111,7 @@ case "$1" in RETVAL=$? fi ;; - configtest) + configtest|check|testconfig|test) configtest RETVAL=$? ;;