ddns-scripts: Update knot resolver regexp
authorDenis Shulyaka <Shulyaka@gmail.com>
Tue, 16 Jul 2024 10:54:54 +0000 (13:54 +0300)
committerJosef Schlehofer <pepe.schlehofer@gmail.com>
Sat, 20 Jul 2024 12:41:00 +0000 (14:41 +0200)
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 <Shulyaka@gmail.com>
(cherry picked from commit ebeae334d9ff39d81898a7d8b5275151518318f1)

net/ddns-scripts/Makefile
net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh

index 54dd32117835cde84a899b1c86db8295e74b9170..7f78be9dcac8fd2871a1fdf7b214e83a2335fbfb 100644 (file)
@@ -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
 
index cb345e846be538bbc6239d0f513e0f6b32c28784..392191dabdf024ad2a551e478330c55b32f989a6 100644 (file)
@@ -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")"