mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-01-27 17:37:18 +01:00
76 lines
1.5 KiB
Bash
Executable file
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"
|
|
}
|