1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-26 09:37:44 +02:00
openwrt-packages/net/unbound/files/unbound.init
Eric Luehrsen 658c27ea97 unbound: clean up interface interpretation in UCI
DNS flag day 2020, software should reflect the minimum EDNS 1232 bytes.
Added iface_wan and iface_lan to control internal DNS assignemnts and
to control what is local service ACL. Interface wild cards are not
explicitly set so that they can be customized in extended conf.

Signed-off-by: Eric Luehrsen <ericluehrsen@gmail.com>
2020-11-04 19:25:08 -05:00

88 lines
2.3 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
##############################################################################
#
# Copyright (C) 2016 Michael Hanselmann, Eric Luehrsen
#
##############################################################################
#
# This init script is just the entry point for Unbound UCI.
#
##############################################################################
# while useful (sh)ellcheck is pedantic and noisy
# shellcheck disable=1091,2002,2004,2034,2039,2086,2094,2140,2154,2155
START=19
STOP=50
USE_PROCD=1
PROG=/usr/sbin/unbound
##############################################################################
boot() {
UB_BOOT=1
start "$@"
}
##############################################################################
start_service() {
if [ -n "$UB_BOOT" ] ; then
# Load procd triggers (rc) and use event IFUP to really start
return 0
fi
# complex UCI work
. /usr/lib/unbound/unbound.sh
unbound_start
# standard procd clause
procd_open_instance "unbound"
procd_set_param command $PROG -d -c $UB_TOTAL_CONF
procd_set_param respawn
procd_close_instance
}
##############################################################################
stop_service() {
# clean up
. /usr/lib/unbound/stopping.sh
unbound_stop
# Wait! on restart Unbound may take time writing closure stats to syslog
pidof $PROG && sleep 1
}
##############################################################################
service_triggers() {
local legacy1=$( uci_get unbound.@unbound[0].trigger )
local legacy2=$( uci_get unbound.@unbound[0].trigger_interface )
local legacy3=$( uci_get unbound.@unbound[0].iface_trig )
local triggers="$legacy1 $legacy2 $legacy3"
. /usr/lib/unbound/defaults.sh
if [ ! -f "$UB_TOTAL_CONF" ] || [ -n "$UB_BOOT" ] ; then
# Unbound can be a bit heavy, so wait some on first start. Any interface
# up affects the trigger delay and will guarantee start.
procd_add_raw_trigger "interface.*.up" 3000 /etc/init.d/unbound restart
elif [ -n "$triggers" ] ; then
for trigger in $triggers ; do
# User selected triggers to restart at any other time
procd_add_reload_interface_trigger "$trigger"
done
procd_add_reload_trigger "unbound" "dhcp"
else
procd_add_reload_trigger "unbound" "dhcp"
fi
}
##############################################################################