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.99rst.org/?a=commitdiff_plain;h=ebeae334d9ff39d81898a7d8b5275151518318f1;p=openwrt-packages.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 --- diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile index 7d44fa07f..668775522 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:=45 +PKG_RELEASE:=46 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 17475448b..f952396e0 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 @@ -547,9 +547,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")"