https-dns-proxy: update to 2026.03.18-3

Maintainer: me
Compile tested: x86_64, Dell EMC Edge620, OpenWrt 25.12.1
Run tested: x86_64, Dell EMC Edge620, OpenWrt 25.12.1

Description:
update to 2026.03.18, release 3

  - update PKG_RELEASE to 3

files/etc/init.d/https-dns-proxy:
  - refactor nftable rules to explicitly add and flush the table and
    chains instead of block replacement
  - make nftable `delete table` call silent in `notrack_nft remove`
  - update `notrack_nft remove` to check for absence of nftable table
    instead of just checking the file
  - ensure `notrack_nft remove` sets _error=1 on failure
  - ignore dnsmasq instances with port 0 in
    `dnsmasq_instance_append_force_dns_port`

tests/run_tests.sh:
  - add test case to ensure dnsmasq port 0 is ignored
  - update `notrack_nft remove` test to confirm success when both file
    and table are absent

Signed-off-by: Stan Grishin <stangri@melmac.ca>
(cherry picked from commit 4bac71e3cd)
Signed-off-by: Stan Grishin <stangri@melmac.ca>
This commit is contained in:
Stan Grishin
2026-05-09 05:38:49 +00:00
parent c8963ec74a
commit eff4ea9cf3
3 changed files with 24 additions and 15 deletions
+12 -2
View File
@@ -505,6 +505,11 @@ force_dns_port="53 853"
dnsmasq_instance_append_force_dns_port "cfg01"
assert_eq "append_force_dns_port: already present port 53 not duplicated" "53 853" "$force_dns_port"
uci_set "dhcp" "cfg03" ".type" "dnsmasq"
uci_set "dhcp" "cfg03" "port" "0"
dnsmasq_instance_append_force_dns_port "cfg03"
assert_eq "append_force_dns_port: disabled dnsmasq port 0 ignored" "53 853" "$force_dns_port"
uci_set "dhcp" "cfg02" ".type" "dnsmasq"
uci_set "dhcp" "cfg02" "port" "5353"
dnsmasq_instance_append_force_dns_port "cfg02"
@@ -690,9 +695,14 @@ assert_rc "notrack_nft remove deletes the snippet file" 0 $?
grep -q "delete table inet https_dns_proxy_notrack" "$__nft_calls_file"
assert_rc "notrack_nft remove invokes 'nft delete table'" 0 $?
# ── remove is a no-op when file already absent ──
# ── remove is a no-op when file already absent and table already gone ──
# Mock `nft` to return non-zero so `nft list table` reports "no such table"
# (the real-world post-delete state); the new remove logic returns 0 only
# when both the file and the live table are absent.
__nft_rc=1
notrack_nft remove
assert_rc "notrack_nft remove succeeds when file already absent" 0 $?
assert_rc "notrack_nft remove succeeds when file and table both absent" 0 $?
__nft_rc=0
###############################################################################
# SHELL SCRIPT SYNTAX #