1#!/bin/sh /etc/rc.common
2# Copyright (C) 2006 OpenWrt.org
3START=70
4
5CRONTABS=/tmp/etc/crontabs
6CRON_SPOOL=/var/spool/cron
7
8prepare_crontab()
9{
10	case "$($CONFIG get i_opmode)" in
11	apmode)
12		/sbin/apsched ;;
13	brmode)
14		echo -n > $CRONTABS/root
15		echo -n "root" > $CRONTABS/cron.update
16		;;
17	*)
18		/sbin/cmdsched
19		;;
20	esac
21}
22
23start () {
24	prepare_crontab
25	/usr/sbin/dsyslog restart
26
27	mkdir -p $CRON_SPOOL
28	[ -d $CRONTABS ] && rm -fr $CRONTABS
29	mkdir -p $CRONTABS
30	[ -L ${CRON_SPOOL}/crontabs ] || ln -s $CRONTABS ${CRON_SPOOL}/crontabs
31
32	# Generate `Block Sites` && `Block Services` && `E-mail Notification`
33	# for scheduling.
34	# This `firewall_function.sh` script will call `/sbin/cmdsched`, then
35	# re-start firewall setting.
36	/www/cgi-bin/firewall_function.sh blk_sched restart
37
38	# Start NTP when `time_zone` is reset.
39	# check if booting or not.if not booting, run ntpclient 
40	if [ ! -f /tmp/boot_status ]; then
41		killall ntpclient
42		sleep 1
43		if [ "$($CONFIG get endis_ntp)" = "1" ]; then
44			/usr/sbin/ntpclient
45		fi
46		# sleep 1 second wait for ntpclient to get time
47		sleep 1
48	fi
49
50	crond -c $CRONTABS -T "$($CONFIG get time_zone)"
51}
52
53stop() {
54	killall -9 crond
55}
56
57restart() {
58	stop
59	start
60}
61
62boot () {
63	mkdir -p $CRONTABS
64	mkdir -p $CRON_SPOOL
65	ln -s $CRONTABS ${CRON_SPOOL}/crontabs
66	start
67}
68
69