diff --git a/owsd/Makefile b/owsd/Makefile index 4bac337da..cebf81aa1 100644 --- a/owsd/Makefile +++ b/owsd/Makefile @@ -37,8 +37,6 @@ define Package/owsd/install $(INSTALL_BIN) ./files/owsd.init $(1)/etc/init.d/owsd $(INSTALL_DIR) $(1)/etc/config $(INSTALL_BIN) ./files/owsd.config $(1)/etc/config/owsd - $(INSTALL_DIR) $(1)/etc/hotplug.d/iface - $(INSTALL_BIN) ./files/owsd.hotplug $(1)/etc/hotplug.d/iface/55-owsd endef define Package/owsd-testdata diff --git a/owsd/files/owsd.hotplug b/owsd/files/owsd.hotplug deleted file mode 100644 index 05d0905c2..000000000 --- a/owsd/files/owsd.hotplug +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -[ "$ACTION" = ifup ] || exit 0 - -compare_owsd_iface() { - local interface - - config_get interface $1 interface - - if [ "$INTERFACE" == "$interface" ]; then - /etc/init.d/owsd reload - exit - fi -} - -config_load owsd -config_foreach compare_owsd_iface "owsd-listen" "$INTERFACE" diff --git a/owsd/files/owsd.init b/owsd/files/owsd.init index 97ee2de62..13482f20f 100644 --- a/owsd/files/owsd.init +++ b/owsd/files/owsd.init @@ -149,11 +149,22 @@ stop_service() } reload_service() { - stop - start + stop + start } service_triggers() { - procd_add_reload_trigger owsd -} + procd_open_trigger + add_interface_trigger() { + local interface + config_get interface "$1" interface + [ -n "${interface}" ] && procd_add_interface_trigger "interface.*" "${interface}" /etc/init.d/owsd reload + } + + config_load owsd + config_foreach add_interface_trigger "owsd-listen" + procd_add_config_trigger "config.change" "owsd" /etc/init.d/owsd reload + procd_add_config_trigger "config.change" "network" /etc/init.d/owsd reload + procd_close_trigger +}