Skip to content

Commit ebed253

Browse files
committed
bugfix: safeguards for dnsmasq instances
1 parent 9c9f0a3 commit ebed253

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk
33

44
PKG_NAME:=https-dns-proxy
55
PKG_VERSION:=2025.12.29
6-
PKG_RELEASE:=3
6+
PKG_RELEASE:=4
77

88
PKG_SOURCE_PROTO:=git
99
PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy/

files/etc/init.d/https-dns-proxy

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ start_instance() {
266266
config_foreach dnsmasq_doh_server 'dnsmasq' 'add' "${listen_addr}" "${listen_port}"
267267
config_foreach dnsmasq_instance_append_force_dns_port 'dnsmasq'
268268
elif is_alnum "$dnsmasq_config_update"; then
269+
config_load 'dhcp'
269270
for i in $dnsmasq_config_update; do
270271
dnsmasq_doh_server "@dnsmasq[$i]" 'add' "${listen_addr}" "${listen_port}" || \
271272
dnsmasq_doh_server "${i}" 'add' "${listen_addr}" "${listen_port}"
@@ -409,13 +410,14 @@ restart() { reload "$@"; }
409410

410411
dnsmasq_instance_append_force_dns_port() {
411412
local cfg="$1" instance_port
412-
[ -n "$(uci_get 'dhcp' "$cfg")" ] || return 1
413+
[ "$(uci_get 'dhcp' "$cfg")" = "dnsmasq" ] || return 1
413414
config_get instance_port "$cfg" 'port' '53'
414415
str_contains_word "$force_dns_port" "$instance_port" || force_dns_port="${force_dns_port:+$force_dns_port }${instance_port}"
415416
}
416417

417418
dnsmasq_doh_server() {
418419
local cfg="$1" param="$2" address="${3:-127.0.0.1}" port="$4" i
420+
[ "$(uci_get 'dhcp' "$cfg")" = "dnsmasq" ] || return 1
419421
case "$param" in
420422
add)
421423
if [ -n "$force_dns" ]; then
@@ -446,7 +448,7 @@ dnsmasq_doh_server() {
446448
dhcp_backup() {
447449
_dnsmasq_create_server_backup() {
448450
local cfg="$1" i
449-
[ -n "$(uci_get 'dhcp' "$cfg")" ] || return 1
451+
[ "$(uci_get 'dhcp' "$cfg")" = "dnsmasq" ] || return 1
450452
# uci_remove 'dhcp' "$cfg" 'doh_server' # this removes outdated doh_server entries, but causes unnecessary dnsmasq restarts
451453
if [ -z "$(uci_get 'dhcp' "$cfg" 'doh_backup_noresolv')" ]; then
452454
if [ -z "$(uci_get 'dhcp' "$cfg" 'noresolv')" ]; then
@@ -472,7 +474,7 @@ dhcp_backup() {
472474
# shellcheck disable=SC2317
473475
_dnsmasq_restore_server_backup() {
474476
local cfg="$1" i
475-
[ -n "$(uci_get 'dhcp' "$cfg")" ] || return 0
477+
[ "$(uci_get 'dhcp' "$cfg")" = "dnsmasq" ] || return 0
476478
if [ -n "$(uci_get 'dhcp' "$cfg" 'doh_backup_noresolv')" ]; then
477479
if [ "$(uci_get 'dhcp' "$cfg" 'doh_backup_noresolv')" = "-1" ]; then
478480
uci_remove 'dhcp' "$cfg" 'noresolv'

0 commit comments

Comments
 (0)