From 7ab8207ba736af328907ff6d94761a54cbeadad5 Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Tue, 21 Nov 2023 18:53:39 -0800 Subject: [PATCH] siproxd: improve network device resolution Resolve network devices by first trying 'network_get_device' (L3) and falling back to 'network_get_physdev' (L2) on failure, which allows using Wireguard interfaces. Both are needed to avoid breaking existing usage for some interfaces (e.g. 'wan'). Also add myself as a maintainer. Signed-off-by: Tony Ambardar --- net/siproxd/Makefile | 3 ++- net/siproxd/files/siproxd.init | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/net/siproxd/Makefile b/net/siproxd/Makefile index b362049..c201f85 100644 --- a/net/siproxd/Makefile +++ b/net/siproxd/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=siproxd -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/hb9xar/siproxd.git @@ -24,6 +24,7 @@ PKG_CONFIG_DEPENDS:=CONFIG_SIPROXD_MAX_CLIENTS PKG_LICENSE:=GPL-2.0+ PKG_LICENSE_FILES:=COPYING +PKG_MAINTAINER:=Tony Ambardar include $(INCLUDE_DIR)/package.mk diff --git a/net/siproxd/files/siproxd.init b/net/siproxd/files/siproxd.init index dd932bd..0ff636b 100644 --- a/net/siproxd/files/siproxd.init +++ b/net/siproxd/files/siproxd.init @@ -39,6 +39,12 @@ append_conf() { echo $* >> "$CONF_DIR/siproxd-$sec.conf" } +# Resolve network device by layer 3 first, then layer 2 + +siproxd_get_device() { + network_get_device $1 $2 || network_get_physdev $1 $2 +} + # Use user-friendly network names (e.g. "wan", "lan") from options # 'interface_inbound' and 'interface_outbound', but use standard siproxd # parameters 'if_inbound' and 'if_outbound' if explicitly set. @@ -51,9 +57,8 @@ setup_networks() { config_get _int_inbound "$sec" interface_inbound config_get _int_outbound "$sec" interface_outbound - . /lib/functions/network.sh - network_get_physdev _dev_inbound $_int_inbound - network_get_physdev _dev_outbound $_int_outbound + siproxd_get_device _dev_inbound $_int_inbound + siproxd_get_device _dev_outbound $_int_outbound default_conf if_inbound $_dev_inbound default_conf if_outbound $_dev_outbound @@ -165,6 +170,7 @@ start_service() { chmod 755 "$CONF_DIR" "$REG_DIR" "$PID_DIR" chown "$SIPROXD_UID:$SIPROXD_GID" "$REG_DIR" + . /lib/functions/network.sh siproxd_cb config_load 'siproxd' } -- 2.30.2