#! /sbin/sh
#Tag 0x00000f00

# cron control
# "$Revision: 1.23 $"

DIR=/etc/cron.d
OPTIONS=/etc/config/cron.options

case $1 in
'start')
	for name in at cron
	do
	    cfgfile=$DIR/${name}.cfg
	    if [ -r $cfgfile ]
	    then
		grep '^configured$' $cfgfile 1>/dev/null 2>&1
		if [ $? -ne 0 ]
		then
			cat <<- EOF >$cfgfile
				# This file records whether the
				# cron and at allow/deny files have
				# been configured, and to disambiguate
				# the presence/absence of those files.

				configured
			EOF
			if [ -r $DIR/${name}.allow -o -r $DIR/${name}.deny ]
			then
				# from a previous install - leave alone
				continue
			else
				touch $DIR/${name}.deny
			fi
		fi
	    else
		cat <<- EOF >$cfgfile
			# This file records whether the
			# cron and at allow/deny files have
			# been configured, and to disambiguate
			# the presence/absence of those files.

			configured
		EOF
		if [ -r $DIR/${name}.allow -o -r $DIR/${name}.deny ]
		then
			continue;
		fi
		touch $DIR/${name}.deny
	    fi
	done

	if test -x /sbin/cron; then
		trap "" 15			# do not kill ourself,
		killall 15 cron			# but prevent 2 crons
		rm -f /etc/cron.d/FIFO
		/sbin/suattr -C CAP_SETGID,CAP_SETUID,CAP_AUDIT_CONTROL,CAP_AUDIT_WRITE,CAP_MAC_RELABEL_OPEN,CAP_MAC_RELABEL_SUBJ,CAP_MAC_MLD,CAP_MAC_READ+ip -c "/sbin/cron ""`cat $OPTIONS 2> /dev/null`"
	fi
	;;

'stop')
	/sbin/killall 15 cron
	;;

*)
	echo "usage: /etc/init.d/cron {start|stop}"
	;;
esac
