https-dns-proxy: support for dnsmasq noresolv option
Signed-off-by: Stan Grishin <stangri@melmac.net>
This commit is contained in:
parent
0960a401d8
commit
de572880c4
2 changed files with 38 additions and 26 deletions
|
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=https-dns-proxy
|
PKG_NAME:=https-dns-proxy
|
||||||
PKG_VERSION:=2019-12-03
|
PKG_VERSION:=2019-12-03
|
||||||
PKG_RELEASE=4
|
PKG_RELEASE=5
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
|
PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
|
||||||
|
|
|
@ -46,14 +46,13 @@ start_instance() {
|
||||||
append_parm "$cfg" 'proxy_server' '-t'
|
append_parm "$cfg" 'proxy_server' '-t'
|
||||||
append_parm "$cfg" 'logfile' '-l'
|
append_parm "$cfg" 'logfile' '-l'
|
||||||
append_bool "$cfg" 'use_http1' '-x'
|
append_bool "$cfg" 'use_http1' '-x'
|
||||||
|
config_get_bool ipv6_resolvers_only "$cfg" 'use_ipv6_resolvers_only' '0'
|
||||||
config_get verbosity "$cfg" 'verbosity' "0"
|
config_get verbosity "$cfg" 'verbosity' "0"
|
||||||
|
|
||||||
# shellcheck disable=SC2086,SC2154
|
# shellcheck disable=SC2086,SC2154
|
||||||
for i in $(seq 1 $verbosity); do
|
for i in $(seq 1 $verbosity); do
|
||||||
xappend "-v"
|
xappend "-v"
|
||||||
done
|
done
|
||||||
|
|
||||||
config_get_bool ipv6_resolvers_only "$cfg" 'use_ipv6_resolvers_only' '0'
|
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
if [ "$ipv6_resolvers_only" = 0 ]; then
|
if [ "$ipv6_resolvers_only" = 0 ]; then
|
||||||
xappend "-4"
|
xappend "-4"
|
||||||
|
@ -114,42 +113,55 @@ service_triggers() {
|
||||||
|
|
||||||
dnsmasq_add_doh_server() {
|
dnsmasq_add_doh_server() {
|
||||||
local cfg="$1" address="$2" port="$3"
|
local cfg="$1" address="$2" port="$3"
|
||||||
|
|
||||||
# Don't add the any address to dnsmasq
|
|
||||||
case $address in
|
case $address in
|
||||||
0.0.0.0|::ffff:0.0.0.0)
|
0.0.0.0|::ffff:0.0.0.0) address='127.0.0.1';;
|
||||||
address='127.0.0.1'
|
::) address='::1';;
|
||||||
;;
|
|
||||||
::)
|
|
||||||
address='::1'
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
uci -q del_list "dhcp.${cfg}.server=${address}#${port}"
|
||||||
uci -q del_list "dhcp.$cfg.server=${address}#${port}"
|
uci -q add_list "dhcp.${cfg}.server=${address}#${port}"
|
||||||
uci -q add_list "dhcp.$cfg.server=${address}#${port}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dnsmasq_create_server_backup() {
|
dnsmasq_create_server_backup() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local i
|
local i
|
||||||
uci -q get "dhcp.$cfg.doh_backup_server" >/dev/null && return 0
|
uci -q get "dhcp.${cfg}" >/dev/null || return 0
|
||||||
for i in $(uci -q get "dhcp.$cfg.server"); do
|
if ! uci -q get "dhcp.${cfg}.doh_backup_noresolv" >/dev/null; then
|
||||||
uci -q add_list dhcp."$cfg".doh_backup_server="$i"
|
if [ -z "$(uci -q get "dhcp.${cfg}.noresolv")" ]; then
|
||||||
if [ "$i" = "${i//127.0.0.1}" ] && [ "$i" = "$(echo "$i" | tr -d /)" ]; then
|
uci -q set "dhcp.${cfg}.noresolv=1"
|
||||||
uci -q del_list "dhcp.$cfg.server=$i"
|
uci -q set "dhcp.${cfg}.doh_backup_noresolv=-1"
|
||||||
|
elif [ "$(uci -q get "dhcp.${cfg}.noresolv")" != "1" ]; then
|
||||||
|
uci -q set "dhcp.${cfg}.noresolv=1"
|
||||||
|
uci -q set "dhcp.${cfg}.doh_backup_noresolv=0"
|
||||||
fi
|
fi
|
||||||
done
|
fi
|
||||||
|
if ! uci -q get "dhcp.${cfg}.doh_backup_server" >/dev/null; then
|
||||||
|
for i in $(uci -q get "dhcp.${cfg}.server"); do
|
||||||
|
uci -q add_list "dhcp.${cfg}.doh_backup_server=$i"
|
||||||
|
if [ "$i" = "${i//127.0.0.1}" ] && [ "$i" = "$(echo "$i" | tr -d /)" ]; then
|
||||||
|
uci -q del_list "dhcp.${cfg}.server=$i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
dnsmasq_restore_server_backup() {
|
dnsmasq_restore_server_backup() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local i
|
local i
|
||||||
if uci -q get "dhcp.$cfg.doh_backup_server" >/dev/null; then
|
uci -q get "dhcp.${cfg}" >/dev/null || return 0
|
||||||
uci -q del "dhcp.$cfg.server"
|
if uci -q get "dhcp.${cfg}.doh_backup_noresolv" >/dev/null; then
|
||||||
for i in $(uci -q get "dhcp.$cfg.doh_backup_server"); do
|
if [ "$(uci -q get "dhcp.${cfg}.doh_backup_noresolv")" = "0" ]; then
|
||||||
uci -q add_list "dhcp.$cfg.server=$i"
|
uci -q set "dhcp.${cfg}.noresolv=0"
|
||||||
|
else
|
||||||
|
uci -q del "dhcp.${cfg}.noresolv"
|
||||||
|
fi
|
||||||
|
uci -q del "dhcp.${cfg}.doh_backup_noresolv"
|
||||||
|
fi
|
||||||
|
if uci -q get "dhcp.${cfg}.doh_backup_server" >/dev/null; then
|
||||||
|
uci -q del "dhcp.${cfg}.server"
|
||||||
|
for i in $(uci -q get "dhcp.${cfg}.doh_backup_server"); do
|
||||||
|
uci -q add_list "dhcp.${cfg}.server=$i"
|
||||||
done
|
done
|
||||||
uci -q del "dhcp.$cfg.doh_backup_server"
|
uci -q del "dhcp.${cfg}.doh_backup_server"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue