watchcat: use logical network to fix restart_interface

Watchcat was failing to restart layer-3 interfaces when in mode
'restart_iface'. The previously attempted fix made the situation
worse in that it resulted in layer 2 interfaces also failing to
start.

This was because we are passed the interface name (e.g. eth0,
l2p0, or br-lan), but ifup needs the logical network (e.g. 'lan'
which corresponds to the network device).

Update to use find_config from /lib/network/config.sh to find the
logical network from the interface name, and use ifup on the
logical network to restart the underlying interface(s) associated
with the logical network.

Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>
This commit is contained in:
Daniel F. Dickinson
2026-04-05 11:21:22 -04:00
committed by Hannu Nyman
parent e4130e53bf
commit c3a85b96de
2 changed files with 7 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=watchcat PKG_NAME:=watchcat
PKG_VERSION:=1 PKG_VERSION:=1
PKG_RELEASE:=21 PKG_RELEASE:=22
PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com> PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0

View File

@@ -6,6 +6,8 @@
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# #
. /lib/network/config.sh
get_ping_size() { get_ping_size() {
ps=$1 ps=$1
case "$ps" in case "$ps" in
@@ -82,8 +84,10 @@ watchcat_restart_modemmanager_iface() {
} }
watchcat_restart_network_iface() { watchcat_restart_network_iface() {
logger -p daemon.info -t "watchcat[$$]" "Restarting network interface: \"$1\"." local network
ifup "$1" network="$(find_config "$1")"
logger -p daemon.info -t "watchcat[$$]" "Restarting network interface: \"$1\" (network: \"$network\")."
ifup "$network"
} }
watchcat_run_script() { watchcat_run_script() {