siproxd: improve network device resolution 843/head
authorTony Ambardar <itugrok@yahoo.com>
Wed, 22 Nov 2023 02:53:39 +0000 (18:53 -0800)
committerTony Ambardar <itugrok@yahoo.com>
Sat, 25 Nov 2023 00:51:31 +0000 (16:51 -0800)
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 <itugrok@yahoo.com>
net/siproxd/Makefile
net/siproxd/files/siproxd.init

index b36204962c67cdda01ea409bdbb0c1c78e0ce3e8..c201f859190ff74d4c3257dc5476c0a062e7efd0 100644 (file)
@@ -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 <itugrok@yahoo.com>
 
 include $(INCLUDE_DIR)/package.mk
 
index dd932bd7fb0580a74e27d19f9f1633dc6abf659c..0ff636bd6fdb791b9087c7d1c48b982cc7091d36 100644 (file)
@@ -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'
 }