ddns-scripts: Update knot resolver regexp
authorDenis Shulyaka <[email protected]>
Tue, 16 Jul 2024 10:54:54 +0000 (13:54 +0300)
committerDenis Shulyaka <[email protected]>
Wed, 17 Jul 2024 10:44:36 +0000 (13:44 +0300)
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 <[email protected]>
net/ddns-scripts/Makefile
net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh

index 7d44fa07f1ca57aadb167be60217dd420cfce66e..668775522c935c658a779b412f55819af6daf62a 100644 (file)
@@ -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
 
index 17475448b38accce4f7c320eca99c1a303c2fa90..f952396e0f80f7ac2e8995f06cd8e577499638a6 100644 (file)
@@ -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")"