From 036079b308a6e1ba1ac690a1643264696780ae5e Mon Sep 17 00:00:00 2001
From: Florian Eckert <fe@dev.tdt.de>
Date: Tue, 22 Jun 2021 10:07:22 +0200
Subject: [PATCH] ddns-scripts: get l3 device for bind network using curl

If pppoe is used for wan access. script set 'eth1' as interface for curl
call. The correct interface is however 'pppoe-wan'.

The script uses 'network_get_physdev' function to get real device for
bind_network but this is wrong. We need instead the l3_device of the the
logical interface.

In case if we don't use pppoe connection - 'l3_device' is equal to real device.

This was reported by the github user `welderpb` with P/R:
 https://github.com/openwrt/packages/pull/14431

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
---
 net/ddns-scripts/Makefile                                    | 2 +-
 net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile
index 047eab9c83..272136f808 100644
--- a/net/ddns-scripts/Makefile
+++ b/net/ddns-scripts/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ddns-scripts
 PKG_VERSION:=2.8.2
-PKG_RELEASE:=9
+PKG_RELEASE:=10
 
 PKG_LICENSE:=GPL-2.0
 
diff --git a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
index 2a677785ee..f36d11ca78 100644
--- a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
+++ b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
@@ -758,8 +758,8 @@ do_transfer() {
 		# force network/interface-device to use for communication
 		if [ -n "$bind_network" ]; then
 			local __DEVICE
-			network_get_physdev __DEVICE $bind_network || \
-				write_log 13 "Can not detect local device using 'network_get_physdev $bind_network' - Error: '$?'"
+			network_get_device __DEVICE $bind_network || \
+				write_log 13 "Can not detect local device using 'network_get_device $bind_network' - Error: '$?'"
 			write_log 7 "Force communication via device '$__DEVICE'"
 			__PROG="$__PROG --interface $__DEVICE"
 		fi
-- 
GitLab