iopsys-feed/parental-control/files/etc/init.d/parentalcontrol
2024-12-05 12:58:35 +00:00

76 lines
1.5 KiB
Bash
Executable file

#!/bin/sh /etc/rc.common
START=95
STOP=10
USE_PROCD=1
PROG=/usr/sbin/urlfilter
. /lib/parentalcontrol/parentalcontrol.sh
remove_fw_rules() {
# remove urlfilter daemon rules
remove_iptables_nfqueue_rules
# remove internet_access and profile_bedtime_schedule rules
remove_internet_schedule_rules
}
configure_fw_rules() {
local enable
remove_fw_rules
config_load parentalcontrol
config_get_bool enable globals enable 0
if [ "${enable}" -eq "0" ]; then
# Parental control is disabled
return 0
fi
# Now flush the existing connections, otherwise,
# URL filtering cannot be performed on already open sites.
if [ -n "$(which conntrack)" ]; then
sleep 5
conntrack -F
fi
# this is for urlfilter daemon
add_iptables_nfqueue_rules
# this for internet_access and profile_bedtime_schedule sections
add_internet_schedule_rules
}
start_service() {
# add default bundles
process_default_bundles
# add firewall rules
configure_fw_rules
procd_open_instance parentalcontrol_dm
procd_set_param command ${PROG}
procd_set_param respawn
procd_close_instance
}
stop_service() {
# remove default bundles
remove_default_bundles
remove_fw_rules
}
reload_service() {
ret=$(ubus call service list '{"name":"parentalcontrol"}' | jsonfilter -qe '@.parentalcontrol.instances.parentalcontrol_dm.running')
if [ "$ret" != "true" ]; then
stop
start
else
configure_fw_rules
ubus send parentalcontrol.reload
fi
}
service_triggers() {
procd_add_reload_trigger "parentalcontrol"
procd_add_reload_trigger "schedules"
}