Hello community, here is the log from the commit of package dhcp for openSUSE:11.3 checked in at Tue Aug 30 19:16:06 CEST 2011. -------- --- old-versions/11.3/UPDATES/all/dhcp/dhcp.changes 2011-05-03 14:41:40.000000000 +0200 +++ 11.3/dhcp/dhcp.changes 2011-08-30 10:35:54.000000000 +0200 @@ -1,0 +2,16 @@ +Tue Aug 30 08:33:41 UTC 2011 - mt@suse.com + +- Applied fixes extracted from dhcp-4.1-ESV-R1..R3 correcting + two denial of service flaws via crafted BOOTP packets + (CVE-2011-2748,CVE-2011-2749,[ISC-Bugs #24960],bnc#712653). +- Moved server pid files into chroot directory even chroot is + not used and create a link in /var/run, so it can write one + when started as user without chroot and avoid stop problems + when the chroot sysconfig setting changed (bnc#712438). +- Fixed dhclient-script to not remove alias IP when it didn't + changed to not wipe out iptables connmark when renewing the + lease (bnc#700771). Thanks to James Carter for the patch. +- Disabled log-info level messages in dhclient(6) quiet mode to + avoid excessive logging of non-critical messages (bnc#711420). + +------------------------------------------------------------------- calling whatdependson for 11.3-i586 New: ---- dhcp-4.1-ESV-R1-CVE-2011-2748_2749.diff dhcp-4.2.2-quiet-dhclient.bnc711420.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dhcp.spec ++++++ --- /var/tmp/diff_new_pack.ZDqHeu/_old 2011-08-30 19:08:59.000000000 +0200 +++ /var/tmp/diff_new_pack.ZDqHeu/_new 2011-08-30 19:08:59.000000000 +0200 @@ -33,7 +33,7 @@ Group: Productivity/Networking/Boot/Servers AutoReqProv: on Version: 4.1.2.ESV.1 -Release: 0.<RELEASE8> +Release: 0.<RELEASE10> Summary: Common Files Used by ISC DHCP Software Url: http://www.isc.org/software/dhcp Source0: dhcp-%{isc_version}.tar.bz2 @@ -83,6 +83,8 @@ Patch41: dhcp-4.1.1-P1-relay-no-ip-on-interface.diff Patch42: dhcp-4.1.1-P1-optional-value-infinite-loop.diff Patch43: dhcp-4.1-ESV-R1-xen-checksum.patch +Patch44: dhcp-4.1-ESV-R1-CVE-2011-2748_2749.diff +Patch45: dhcp-4.2.2-quiet-dhclient.bnc711420.diff ## PreReq: /bin/touch /sbin/chkconfig sysconfig BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -207,6 +209,8 @@ %patch41 -p1 %patch42 -p1 %patch43 -p1 +%patch44 -p1 +%patch45 -p1 ## find . -type f -name \*.cat\* -exec rm -f {} \; dos2unix contrib/ms2isc/* ++++++ dhclient-script ++++++ --- /var/tmp/diff_new_pack.ZDqHeu/_old 2011-08-30 19:08:59.000000000 +0200 +++ /var/tmp/diff_new_pack.ZDqHeu/_new 2011-08-30 19:08:59.000000000 +0200 @@ -400,8 +400,8 @@ BOUND|RENEW|REBIND|REBOOT) #################################################################### - if [ x$old_ip_address != x -a x$alias_ip_address != x ] && \ - [ x$alias_ip_address != x$old_ip_address ] ; + if [ x$alias_ip_address != x -a x$alias_ip_address != x$old_ip_address -a \ + x$new_ip_address != x$old_ip_address ] ; then # Possible new alias. Remove old alias. /sbin/ip addr del $alias_ip_address/$alias_subnet_mask dev $interface @@ -426,7 +426,8 @@ set_ipv4_routes fi - if [ x$new_ip_address != x$alias_ip_address -a x$alias_ip_address != x ]; + if [ x$new_ip_address != x$alias_ip_address -a x$alias_ip_address != x \ + -a x$new_ip_address != x$old_ip_address ]; then /sbin/ip addr add $alias_ip_address/$alias_subnet_mask \ dev $interface ++++++ dhcp-4.1-ESV-R1-CVE-2011-2748_2749.diff ++++++ --- dhcp-4.1-ESV-R1/common/discover.c +++ dhcp-4.1-ESV-R1/common/discover.c 2011/08/29 11:27:34 @@ -1378,12 +1378,16 @@ isc_result_t got_one (h) if (result == 0) return ISC_R_UNEXPECTED; - /* If we didn't at least get the fixed portion of the BOOTP - packet, drop the packet. We're allowing packets with no - sname or filename, because we're aware of at least one - client that sends such packets, but this definitely falls - into the category of being forgiving. */ - if (result < DHCP_FIXED_NON_UDP - DHCP_SNAME_LEN - DHCP_FILE_LEN) + /* + * If we didn't at least get the fixed portion of the BOOTP + * packet, drop the packet. + * Previously we allowed packets with no sname or filename + * as we were aware of at least one client that did. But + * a bug caused short packets to not work and nobody has + * complained, it seems rational to tighten up that + * restriction. + */ + if (result < DHCP_FIXED_NON_UDP) return ISC_R_UNEXPECTED; if (bootp_packet_handler) { --- dhcp-4.1-ESV-R1/common/options.c +++ dhcp-4.1-ESV-R1/common/options.c 2011/08/29 11:27:06 @@ -592,8 +592,8 @@ cons_options(struct packet *inpacket, st } else if (bootpp) { mb_size = 64; if (inpacket != NULL && - (inpacket->packet_length - DHCP_FIXED_LEN >= 64)) - mb_size = inpacket->packet_length - DHCP_FIXED_LEN; + (inpacket->packet_length >= 64 + DHCP_FIXED_NON_UDP)) + mb_size = inpacket->packet_length - DHCP_FIXED_NON_UDP; } else mb_size = DHCP_MIN_OPTION_LEN; --- dhcp-4.1-ESV-R1/server/dhcp.c +++ dhcp-4.1-ESV-R1/server/dhcp.c 2011/08/29 11:27:06 @@ -1541,6 +1541,7 @@ void ack_lease (packet, lease, offer, wh * by the user into the new state, not just give up. */ if (!packet->agent_options_stashed && + (packet->options != NULL) && packet->options->universe_count > agent_universe.index && packet->options->universes[agent_universe.index] != NULL && (state->options->universe_count <= agent_universe.index || @@ -2346,6 +2347,7 @@ void ack_lease (packet, lease, offer, wh * giaddr. */ if (!packet->agent_options_stashed && + (packet->options != NULL) && packet->options->universe_count > agent_universe.index && packet->options->universes[agent_universe.index] != NULL) { oc = lookup_option (&server_universe, state -> options, ++++++ dhcp-4.2.2-quiet-dhclient.bnc711420.diff ++++++ diff --git a/client/dhclient.c b/client/dhclient.c index a1cab01..ff5ede5 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -444,6 +444,9 @@ main(int argc, char **argv) { } else { log_perror = 0; quiet_interface_discovery = 1; +#if !defined(DEBUG) + setlogmask(LOG_UPTO(LOG_NOTICE)); +#endif } /* If we're given a relay agent address to insert, for testing -- 1.7.3.4 ++++++ rc.dhcpd ++++++ --- /var/tmp/diff_new_pack.ZDqHeu/_old 2011-08-30 19:08:59.000000000 +0200 +++ /var/tmp/diff_new_pack.ZDqHeu/_new 2011-08-30 19:08:59.000000000 +0200 @@ -59,6 +59,11 @@ DAEMON_CONF=/etc/dhcpd.conf DAEMON_STATE=/var/lib/dhcp DAEMON_LEASES=dhcpd.leases +# note: $DAEMON_PIDFILE is a symlink to the +# $DAEMON_STATE$DAEMON_PIDFILE (also +# while DHCPD_RUN_CHROOTED=no) now, +# as DHCPD_RUN_AS is not allowed to +# create pid files in /var/run. DAEMON_PIDFILE=/var/run/dhcpd.pid STARTPROC_LOGFILE=/var/log/rc.dhcpd.log LDAP_CONF=/etc/openldap/ldap.conf @@ -128,7 +133,7 @@ # remove empty pid files to avoid disturbing warnings by checkproc/killproc # (these can occur if dhcpd does not start correctly) test -e $DAEMON_PIDFILE && ! test -s $DAEMON_PIDFILE && rm $DAEMON_PIDFILE -test -e $CHROOT_PREFIX/$DAEMON_PIDFILE && ! test -s $CHROOT_PREFIX/$DAEMON_PIDFILE && rm $CHROOT_PREFIX/$DAEMON_PIDFILE +test -e $DAEMON_STATE/$DAEMON_PIDFILE && ! test -s $DAEMON_STATE/$DAEMON_PIDFILE && rm $DAEMON_STATE/$DAEMON_PIDFILE case "$1" in start) @@ -240,33 +245,33 @@ ## the chroot jail. Therefore, and old pid file may exist. This is only a problem if it ## incidentally contains the pid of a running process. If this process is not a 'dhcpd', ## we remove the pid. (dhcpd itself only checks whether the pid is alive or not.) - if test -e $CHROOT_PREFIX/$DAEMON_PIDFILE -a -s $CHROOT_PREFIX/$DAEMON_PIDFILE; then - p=$(<$CHROOT_PREFIX/$DAEMON_PIDFILE) + if test -s $DAEMON_STATE/$DAEMON_PIDFILE; then + p=$(<$DAEMON_STATE/$DAEMON_PIDFILE) if test -n "$p" && grep -qsE "^${DAEMON_BIN}" "/proc/$p/cmdline" ; then echo -n '(already running) ' else - rm $CHROOT_PREFIX/$DAEMON_PIDFILE + rm -f $DAEMON_STATE/$DAEMON_PIDFILE fi fi + PID_FILE_ARG="$DAEMON_PIDFILE" else DHCPD_ARGS="-lf ${DAEMON_STATE}/db/$DAEMON_LEASES" + PID_FILE_ARG="$DAEMON_STATE$DAEMON_PIDFILE" fi if [ -n "$DHCPD_RUN_AS" ]; then DHCPD_RUN_AS_GROUP="$(getent group $(getent passwd $DHCPD_RUN_AS | cut -d: -f4) | cut -d: -f1)" DHCPD_ARGS="$DHCPD_ARGS -user $DHCPD_RUN_AS -group $DHCPD_RUN_AS_GROUP" - if test "$DHCPD_RUN_CHROOTED" = "yes" ; then - chown "${DHCPD_RUN_AS}:${DHCPD_RUN_AS_GROUP}" \ - "$CHROOT_PREFIX/${DAEMON_PIDFILE%/*}" - fi + chown "${DHCPD_RUN_AS}:${DHCPD_RUN_AS_GROUP}" \ + "$DAEMON_STATE/${DAEMON_PIDFILE%/*}" fi ## check syntax with -t (output to log file) and start only when the syntax is okay rm -f $STARTPROC_LOGFILE # start log error=0 - if ! $DAEMON_BIN $DHCPDv_OPT -t -cf $CHROOT_PREFIX/$DAEMON_CONF -pf $DAEMON_PIDFILE > $STARTPROC_LOGFILE 2>&1 ; then + if ! $DAEMON_BIN $DHCPDv_OPT -t -cf $CHROOT_PREFIX/$DAEMON_CONF -pf $PID_FILE_ARG > $STARTPROC_LOGFILE 2>&1 ; then error=1 else ## Start daemon. If this fails the return value is set appropriate. @@ -274,17 +279,20 @@ ## to match the LSB spec. test "$2" = "-v" && echo -en \ - "\nexecuting '$DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $DAEMON_PIDFILE $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE'" + "\nexecuting '$DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $PID_FILE_ARG $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE'" - $DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $DAEMON_PIDFILE $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE &> $STARTPROC_LOGFILE + $DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $PID_FILE_ARG $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE &> $STARTPROC_LOGFILE ret=$? fi - - if [ $error -gt 0 -o ${ret:-0} -gt 0 ]; then - cat $STARTPROC_LOGFILE + + if [ $error -gt 0 -o ${ret:-0} -gt 0 ]; then + ## be verbose + echo "" + echo -n " please see $STARTPROC_LOGFILE for details " ## set status to failed rc_failed else + ln -sf "$DAEMON_STATE$DAEMON_PIDFILE" "$DAEMON_PIDFILE" [ "$DHCPD_RUN_CHROOTED" = "yes" ] && echo -n "[chroot]" || : fi @@ -294,14 +302,29 @@ stop) echo -n "Shutting down $DAEMON " + # Catch the case where daemon is running without chroot, + # but sysconfig/dhcp has been changed to use chroot (and + # another way around). + # In this case is there is no $chroot/$pidfile, but there + # should be a /pidfile that we use instead. + # We can not kill without pid file or dhcp4 kills dhcp6. + PID_FILE="$DAEMON_STATE$DAEMON_PIDFILE" + if test "$DHCPD_RUN_CHROOTED" = "yes" ; then + if test ! -s "$DAEMON_STATE$DAEMON_PIDFILE" -a \ + -s "$DAEMON_PIDFILE" ; then + PID_FILE="$DAEMON_PIDFILE" + fi + else + if test ! -s "$DAEMON_PIDFILE" -a \ + -s "$DAEMON_STATE$DAEMON_PIDFILE" ; then + PID_FILE="$DAEMON_STATE$DAEMON_PIDFILE" + fi + fi + ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. - - killproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE -TERM $DAEMON_BIN + killproc -p "$PID_FILE" $DAEMON_BIN ret=$? - if test -s $CHROOT_PREFIX/$DAEMON_PIDFILE; then - kill $(<$CHROOT_PREFIX/$DAEMON_PIDFILE) 2>/dev/null - fi # umount proc and remove libraries from the chroot jail, # so they are not left over if the server is deinstalled @@ -345,8 +368,8 @@ echo -n "Reload service $DAEMON" if [ "$SUPPORTS_HUP" = "yes" ]; then - killproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE -HUP $DAEMON_BIN - #touch $CHROOT_PREFIX/$DAEMON_PIDFILE + killproc -p $DAEMON_STATE/$DAEMON_PIDFILE -HUP $DAEMON_BIN + #touch $DAEMON_STATE/$DAEMON_PIDFILE rc_status -v else $0 stop && sleep 3 && $0 start @@ -360,8 +383,8 @@ echo -n "Reload service $DAEMON" if [ "$SUPPORTS_HUP" = "yes" ]; then # If it supports signalling: - killproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE -HUP $DAEMON_BIN - #touch $CHROOT_PREFIX/$DAEMON_PIDFILE + killproc -p $DAEMON_STATE/$DAEMON_PIDFILE -HUP $DAEMON_BIN + #touch $DAEMON_STATE/$DAEMON_PIDFILE rc_status -v else ## Otherwise if it does not support reload: @@ -381,7 +404,7 @@ # 3 - service not running # NOTE: checkproc returns LSB compliant status values. - checkproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE $DAEMON_BIN + checkproc -p $DAEMON_STATE/$DAEMON_PIDFILE $DAEMON_BIN rc_status -v ;; probe) @@ -390,7 +413,7 @@ rc=0 for i in /etc/sysconfig/dhcpd $DAEMON_CONF $DHCPD_CONF_INCLUDE_FILES; do - test $i -nt $CHROOT_PREFIX/$DAEMON_PIDFILE && rc=1 + test $i -nt $DAEMON_STATE/$DAEMON_PIDFILE && rc=1 done test $rc = 1 && echo restart ;; ++++++ rc.dhcpd6 ++++++ --- /var/tmp/diff_new_pack.ZDqHeu/_old 2011-08-30 19:08:59.000000000 +0200 +++ /var/tmp/diff_new_pack.ZDqHeu/_new 2011-08-30 19:08:59.000000000 +0200 @@ -63,6 +63,11 @@ DAEMON_CONF=/etc/dhcpd6.conf DAEMON_STATE=/var/lib/dhcp6 DAEMON_LEASES=dhcpd6.leases +# note: $DAEMON_PIDFILE is a symlink to the +# $DAEMON_STATE$DAEMON_PIDFILE (also +# while DHCPD_RUN_CHROOTED=no) now, +# as DHCPD_RUN_AS is not allowed to +# create pid files in /var/run. DAEMON_PIDFILE=/var/run/dhcpd6.pid STARTPROC_LOGFILE=/var/log/rc.dhcpd6.log LDAP_CONF= @@ -132,7 +137,7 @@ # remove empty pid files to avoid disturbing warnings by checkproc/killproc # (these can occur if dhcpd does not start correctly) test -e $DAEMON_PIDFILE && ! test -s $DAEMON_PIDFILE && rm $DAEMON_PIDFILE -test -e $CHROOT_PREFIX/$DAEMON_PIDFILE && ! test -s $CHROOT_PREFIX/$DAEMON_PIDFILE && rm $CHROOT_PREFIX/$DAEMON_PIDFILE +test -e $DAEMON_STATE/$DAEMON_PIDFILE && ! test -s $DAEMON_STATE/$DAEMON_PIDFILE && rm $DAEMON_STATE/$DAEMON_PIDFILE case "$1" in start) @@ -244,33 +249,33 @@ ## the chroot jail. Therefore, and old pid file may exist. This is only a problem if it ## incidentally contains the pid of a running process. If this process is not a 'dhcpd', ## we remove the pid. (dhcpd itself only checks whether the pid is alive or not.) - if test -e $CHROOT_PREFIX/$DAEMON_PIDFILE -a -s $CHROOT_PREFIX/$DAEMON_PIDFILE; then - p=$(<$CHROOT_PREFIX/$DAEMON_PIDFILE) + if test -s $DAEMON_STATE/$DAEMON_PIDFILE; then + p=$(<$DAEMON_STATE/$DAEMON_PIDFILE) if test -n "$p" && grep -qsE "^${DAEMON_BIN}" "/proc/$p/cmdline" ; then echo -n '(already running) ' else - rm $CHROOT_PREFIX/$DAEMON_PIDFILE + rm -f $DAEMON_STATE/$DAEMON_PIDFILE fi fi + PID_FILE_ARG="$DAEMON_PIDFILE" else DHCPD_ARGS="-lf ${DAEMON_STATE}/db/$DAEMON_LEASES" + PID_FILE_ARG="$DAEMON_STATE$DAEMON_PIDFILE" fi if [ -n "$DHCPD_RUN_AS" ]; then DHCPD_RUN_AS_GROUP="$(getent group $(getent passwd $DHCPD_RUN_AS | cut -d: -f4) | cut -d: -f1)" DHCPD_ARGS="$DHCPD_ARGS -user $DHCPD_RUN_AS -group $DHCPD_RUN_AS_GROUP" - if test "$DHCPD_RUN_CHROOTED" = "yes" ; then - chown "${DHCPD_RUN_AS}:${DHCPD_RUN_AS_GROUP}" \ - "$CHROOT_PREFIX/${DAEMON_PIDFILE%/*}" - fi + chown "${DHCPD_RUN_AS}:${DHCPD_RUN_AS_GROUP}" \ + "$DAEMON_STATE/${DAEMON_PIDFILE%/*}" fi ## check syntax with -t (output to log file) and start only when the syntax is okay rm -f $STARTPROC_LOGFILE # start log error=0 - if ! $DAEMON_BIN $DHCPDv_OPT -t -cf $CHROOT_PREFIX/$DAEMON_CONF -pf $DAEMON_PIDFILE > $STARTPROC_LOGFILE 2>&1 ; then + if ! $DAEMON_BIN $DHCPDv_OPT -t -cf $CHROOT_PREFIX/$DAEMON_CONF -pf $PID_FILE_ARG > $STARTPROC_LOGFILE 2>&1 ; then error=1 else ## Start daemon. If this fails the return value is set appropriate. @@ -278,17 +283,20 @@ ## to match the LSB spec. test "$2" = "-v" && echo -en \ - "\nexecuting '$DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $DAEMON_PIDFILE $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE'" + "\nexecuting '$DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $PID_FILE_ARG $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE'" - $DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $DAEMON_PIDFILE $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE &> $STARTPROC_LOGFILE + $DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $PID_FILE_ARG $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE &> $STARTPROC_LOGFILE ret=$? fi - - if [ $error -gt 0 -o ${ret:-0} -gt 0 ]; then - cat $STARTPROC_LOGFILE + + if [ $error -gt 0 -o ${ret:-0} -gt 0 ]; then + ## be verbose + echo "" + echo -n " please see $STARTPROC_LOGFILE for details " ## set status to failed rc_failed else + ln -sf "$DAEMON_STATE$DAEMON_PIDFILE" "$DAEMON_PIDFILE" [ "$DHCPD_RUN_CHROOTED" = "yes" ] && echo -n "[chroot]" || : fi @@ -298,14 +306,29 @@ stop) echo -n "Shutting down $DAEMON " + # Catch the case where daemon is running without chroot, + # but sysconfig/dhcp has been changed to use chroot (and + # another way around). + # In this case is there is no $chroot/$pidfile, but there + # should be a /pidfile that we use instead. + # We can not kill without pid file or dhcp4 kills dhcp6. + PID_FILE="$DAEMON_STATE$DAEMON_PIDFILE" + if test "$DHCPD_RUN_CHROOTED" = "yes" ; then + if test ! -s "$DAEMON_STATE$DAEMON_PIDFILE" -a \ + -s "$DAEMON_PIDFILE" ; then + PID_FILE="$DAEMON_PIDFILE" + fi + else + if test ! -s "$DAEMON_PIDFILE" -a \ + -s "$DAEMON_STATE$DAEMON_PIDFILE" ; then + PID_FILE="$DAEMON_STATE$DAEMON_PIDFILE" + fi + fi + ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. - - killproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE -TERM $DAEMON_BIN + killproc -p "$PID_FILE" $DAEMON_BIN ret=$? - if test -s $CHROOT_PREFIX/$DAEMON_PIDFILE; then - kill $(<$CHROOT_PREFIX/$DAEMON_PIDFILE) 2>/dev/null - fi # umount proc and remove libraries from the chroot jail, # so they are not left over if the server is deinstalled @@ -349,8 +372,8 @@ echo -n "Reload service $DAEMON" if [ "$SUPPORTS_HUP" = "yes" ]; then - killproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE -HUP $DAEMON_BIN - #touch $CHROOT_PREFIX/$DAEMON_PIDFILE + killproc -p $DAEMON_STATE/$DAEMON_PIDFILE -HUP $DAEMON_BIN + #touch $DAEMON_STATE/$DAEMON_PIDFILE rc_status -v else $0 stop && sleep 3 && $0 start @@ -364,8 +387,8 @@ echo -n "Reload service $DAEMON" if [ "$SUPPORTS_HUP" = "yes" ]; then # If it supports signalling: - killproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE -HUP $DAEMON_BIN - #touch $CHROOT_PREFIX/$DAEMON_PIDFILE + killproc -p $DAEMON_STATE/$DAEMON_PIDFILE -HUP $DAEMON_BIN + #touch $DAEMON_STATE/$DAEMON_PIDFILE rc_status -v else ## Otherwise if it does not support reload: @@ -385,7 +408,7 @@ # 3 - service not running # NOTE: checkproc returns LSB compliant status values. - checkproc -p $CHROOT_PREFIX/$DAEMON_PIDFILE $DAEMON_BIN + checkproc -p $DAEMON_STATE/$DAEMON_PIDFILE $DAEMON_BIN rc_status -v ;; probe) @@ -394,7 +417,7 @@ rc=0 for i in /etc/sysconfig/dhcpd $DAEMON_CONF $DHCPD_CONF_INCLUDE_FILES; do - test $i -nt $CHROOT_PREFIX/$DAEMON_PIDFILE && rc=1 + test $i -nt $DAEMON_STATE/$DAEMON_PIDFILE && rc=1 done test $rc = 1 && echo restart ;; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org