Browse Source

unbound: fix hotplug iface and ntp restarts

Unbound is configured to restart on hotplug/iface but this can result
in numerous restarts at boot. Unbound also has a restart for NTP.
This was observed to generate trouble and even with procd robustness
too many crashes might occur (rare). Unbound would not be running.

Give more care to /var/lib/unbound/root.key during restarts. Use procd
for iface restarts. Check pidof() to wait one more second for Unbound.

Signed-off-by: Eric Luehrsen <ericluehrsen@hotmail.com>
lilik-openwrt-22.03
Eric Luehrsen 8 years ago
parent
commit
afa56a6002
4 changed files with 16 additions and 30 deletions
  1. +1
    -3
      net/unbound/Makefile
  2. +0
    -20
      net/unbound/files/unbound.iface
  3. +5
    -1
      net/unbound/files/unbound.init
  4. +10
    -6
      net/unbound/files/unbound.sh

+ 1
- 3
net/unbound/Makefile View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=unbound PKG_NAME:=unbound
PKG_VERSION:=1.6.1 PKG_VERSION:=1.6.1
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_LICENSE:=BSD-3-Clause PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE PKG_LICENSE_FILES:=LICENSE
@ -148,8 +148,6 @@ define Package/unbound/install
$(INSTALL_DATA) ./files/unbound_srv.conf $(1)/etc/unbound/unbound_srv.conf $(INSTALL_DATA) ./files/unbound_srv.conf $(1)/etc/unbound/unbound_srv.conf
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) ./files/unbound.uci $(1)/etc/config/unbound $(INSTALL_DATA) ./files/unbound.uci $(1)/etc/config/unbound
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_BIN) ./files/unbound.iface $(1)/etc/hotplug.d/iface/25-unbound
$(INSTALL_DIR) $(1)/etc/hotplug.d/ntp $(INSTALL_DIR) $(1)/etc/hotplug.d/ntp
$(INSTALL_BIN) ./files/unbound.ntpd $(1)/etc/hotplug.d/ntp/25-unbound $(INSTALL_BIN) ./files/unbound.ntpd $(1)/etc/hotplug.d/ntp/25-unbound
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d


+ 0
- 20
net/unbound/files/unbound.iface View File

@ -1,20 +0,0 @@
#!/bin/sh
##############################################################################
#
# Copyright (C) 2016 Eric Luehrsen
#
##############################################################################
#
# "Restart" Unbound on hotplug interface up:
# - Clean rebind of unbound to new interfaces
# - Some of Unbound conf options to not reload run time
# - Unbound can grow a bit so this will shrink it back
#
##############################################################################
if [ "$ACTION" = ifup ] && /etc/init.d/unbound enabled ; then
/etc/init.d/unbound restart
fi
##############################################################################

+ 5
- 1
net/unbound/files/unbound.init View File

@ -20,6 +20,9 @@ PROG=/usr/sbin/unbound
############################################################################## ##############################################################################
start_service() { start_service() {
# WAIT! Unbound often takes its time writing closure stats to syslog
pidof $PROG && sleep 1
# complex UCI work # complex UCI work
unbound_start unbound_start
@ -39,7 +42,8 @@ stop_service() {
############################################################################## ##############################################################################
service_triggers() { service_triggers() {
procd_add_reload_trigger "dhcp" "network" "unbound"
procd_add_reload_trigger "unbound"
procd_add_raw_trigger "interface.*" 2000 /etc/init.d/unbound restart
} }
############################################################################## ##############################################################################


+ 10
- 6
net/unbound/files/unbound.sh View File

@ -236,6 +236,7 @@ unbound_mkdir() {
local resolvsym=0 local resolvsym=0
local dhcp_origin=$( uci get dhcp.@odhcpd[0].leasefile ) local dhcp_origin=$( uci get dhcp.@odhcpd[0].leasefile )
local dhcp_dir=$( dirname "$dhcp_origin" ) local dhcp_dir=$( dirname "$dhcp_origin" )
local filestuff
if [ ! -x /usr/sbin/dnsmasq -o ! -x /etc/init.d/dnsmasq ] ; then if [ ! -x /usr/sbin/dnsmasq -o ! -x /etc/init.d/dnsmasq ] ; then
@ -265,8 +266,15 @@ unbound_mkdir() {
if [ -f $UNBOUND_KEYFILE ] ; then if [ -f $UNBOUND_KEYFILE ] ; then
# Lets not lose RFC 5011 tracking if we don't have to
cp -p $UNBOUND_KEYFILE $UNBOUND_KEYFILE.keep
filestuff=$( cat $UNBOUND_KEYFILE )
case "$filestuff" in
*"state=2 [ VALID ]"*)
# Lets not lose RFC 5011 tracking if we don't have to
cp -p $UNBOUND_KEYFILE $UNBOUND_KEYFILE.keep
;;
esac
fi fi
@ -891,10 +899,6 @@ unbound_stop() {
rm -f /tmp/resolv.conf rm -f /tmp/resolv.conf
ln -s /tmp/resolv.conf.auto /tmp/resolv.conf ln -s /tmp/resolv.conf.auto /tmp/resolv.conf
fi fi
# Unbound has a log dump which takes time; don't overlap a "restart"
sleep 1
} }
############################################################################## ##############################################################################


Loading…
Cancel
Save