#!/bin/sh /etc/rc.common
|
|
##############################################################################
|
|
#
|
|
# Copyright (C) 2016 Michael Hanselmann, Eric Luehrsen
|
|
#
|
|
##############################################################################
|
|
#
|
|
# This init script is just the entry point for Unbound UCI.
|
|
#
|
|
##############################################################################
|
|
|
|
START=19
|
|
STOP=50
|
|
USE_PROCD=1
|
|
PROG=/usr/sbin/unbound
|
|
|
|
##############################################################################
|
|
|
|
boot() {
|
|
UNBOUND_BOOT=1
|
|
start "$@"
|
|
}
|
|
|
|
##############################################################################
|
|
|
|
start_service() {
|
|
if [ -n "$UNBOUND_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 $UNBOUND_CONFFILE
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
}
|
|
|
|
##############################################################################
|
|
|
|
stop_service() {
|
|
# clean up
|
|
. /usr/lib/unbound/unbound.sh
|
|
unbound_stop
|
|
|
|
# Wait! on restart Unbound may take time writing closure stats to syslog
|
|
pidof $PROG && sleep 1
|
|
}
|
|
|
|
##############################################################################
|
|
|
|
service_triggers() {
|
|
local trigger
|
|
local legacy=$( uci_get unbound.@unbound[0].trigger )
|
|
local triggers=$( uci_get unbound.@unbound[0].trigger_interface )
|
|
|
|
triggers="$triggers $legacy"
|
|
PROCD_RELOAD_DELAY=2000
|
|
procd_add_reload_trigger "unbound"
|
|
|
|
|
|
if [ -n "$triggers" ] ; then
|
|
for trigger in $triggers ; do
|
|
# due to some netifd/procd interactions with IP6, limit interfaces
|
|
procd_add_reload_interface_trigger "$trigger"
|
|
done
|
|
else
|
|
procd_add_raw_trigger "interface.*.up" 2000 /etc/init.d/unbound reload
|
|
fi
|
|
}
|
|
|
|
##############################################################################
|
|
|