From: Denis Shulyaka Date: Tue, 16 Jul 2024 10:54:54 +0000 (+0300) Subject: ddns-scripts: Update knot resolver regexp X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=0f0bce167469de401abb425e45c65aa6d2b743e4;p=feed%2Fpackages.git ddns-scripts: Update knot resolver regexp The output format of `khost` has changed. This commit fixes the regexp for IPv4. It fixes the issue of using a custom DNS to resolve current address. ```bash root@localhost:~# khost ns2.afraid.org ns2.afraid.org. has IPv4 address 69.65.50.223 ns2.afraid.org. has IPv6 address 2001:1850:1:5:800::6b Host ns2.afraid.org. has no MX record root@localhost:~# khost --version khost (Knot DNS), version 3.3.5 ``` Signed-off-by: Denis Shulyaka (cherry picked from commit ebeae334d9ff39d81898a7d8b5275151518318f1) --- diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile index 54dd321178..7f78be9dca 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:=25 +PKG_RELEASE:=26 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 cb345e846b..392191dabd 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 @@ -546,9 +546,12 @@ verify_host_port() { return 2 } # extract IP address - if [ -n "$BIND_HOST" -o -n "$KNOT_HOST" ]; then # use BIND host or Knot host if installed + if [ -n "$BIND_HOST" ]; then # use BIND host if installed __IPV4="$(awk -F "address " '/has address/ {print $2; exit}' "$DATFILE")" __IPV6="$(awk -F "address " '/has IPv6/ {print $2; exit}' "$DATFILE")" + elif [ -n "$KNOT_HOST" ]; then # use Knot host if installed + __IPV4="$(awk -F "address " '/has IPv4/ {print $2; exit}' "$DATFILE")" + __IPV6="$(awk -F "address " '/has IPv6/ {print $2; exit}' "$DATFILE")" elif [ -n "$DRILL" ]; then # use drill if installed __IPV4="$(awk '/^'"$__HOST"'/ {print $5}' "$DATFILE" | grep -m 1 -o "$IPV4_REGEX")" __IPV6="$(awk '/^'"$__HOST"'/ {print $5}' "$DATFILE" | grep -m 1 -o "$IPV6_REGEX")"