From 3d9b512685068514c3cd09346acbfd7d8c4f3ac1 Mon Sep 17 00:00:00 2001 From: Gerard Ryan Date: Sun, 2 Feb 2020 13:08:46 +1000 Subject: [PATCH] https-dns-proxy: Update for reverted commit * Reapplied daf538d8c63a2be72e32f87276ca06db7dc7df5e * Updated README * Replaced the ipv4_resolvers option with a ipv6_resolvers_only option Signed-off-by: Gerard Ryan --- net/https-dns-proxy/Makefile | 2 +- net/https-dns-proxy/files/README.md | 5 ++- .../files/https-dns-proxy.config | 4 -- .../files/https-dns-proxy.init | 37 +++++++++++-------- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/net/https-dns-proxy/Makefile b/net/https-dns-proxy/Makefile index 7e3d0a5ba5..aab2c488c2 100644 --- a/net/https-dns-proxy/Makefile +++ b/net/https-dns-proxy/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=https-dns-proxy PKG_VERSION:=2019-12-03 -PKG_RELEASE=3 +PKG_RELEASE=4 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy diff --git a/net/https-dns-proxy/files/README.md b/net/https-dns-proxy/files/README.md index d844399bb7..437cd8688d 100644 --- a/net/https-dns-proxy/files/README.md +++ b/net/https-dns-proxy/files/README.md @@ -57,7 +57,7 @@ config https-dns-proxy option listen_addr '127.0.0.1' option listen_port '5054' option user 'nobody' - option group 'nogroup'``` + option group 'nogroup' ``` The ```update_dnsmasq_config``` option can be set to dash (set to ```'-'``` to not change ```DNSMASQ``` server settings on start/stop), can be set to ```'*'``` to affect all ```DNSMASQ``` instance server settings or have a space-separated list of ```DNSMASQ``` instances to affect (like ```'0 4 5'```). If this option is omitted, the default setting is ```'*'```. @@ -87,7 +87,8 @@ The https-dns-proxy instance settings are: |user|String|nobody|Local user to run instance under.| |group|String|nogroup|Local group to run instance under.| |use_http1|Boolean|0|If set to 1, use HTTP/1 on installations with broken/outdated ```curl``` package. Included for posterity reasons, you will most likely not ever need it on OpenWrt.| -|verbosity|Integer||Use setting between 1 to 4 to control the logging verbosity level.|String +|verbosity|Integer|0|logging verbosity level. fatal = 0, error = 1, warning = 2, info = 3, debug = 4| +|ipv6_resolvers_only|Boolean|0|If set to 1, Forces IPv6 DNS resolvers instead of IPv4| ## Thanks diff --git a/net/https-dns-proxy/files/https-dns-proxy.config b/net/https-dns-proxy/files/https-dns-proxy.config index 7f8ecd5979..3c5eecf4d1 100644 --- a/net/https-dns-proxy/files/https-dns-proxy.config +++ b/net/https-dns-proxy/files/https-dns-proxy.config @@ -8,8 +8,6 @@ config https-dns-proxy option listen_port '5053' option user 'nobody' option group 'nogroup' - option ipv4_resolvers '1' - option verbosity '0' # fatal = 0, error = 1, warning = 2, info = 3, debug = 4 config https-dns-proxy option bootstrap_dns '1.1.1.1,1.0.0.1' @@ -18,5 +16,3 @@ config https-dns-proxy option listen_port '5054' option user 'nobody' option group 'nogroup' - option ipv4_resolvers '1' - option verbosity '0' # fatal = 0, error = 1, warning = 2, info = 3, debug = 4 diff --git a/net/https-dns-proxy/files/https-dns-proxy.init b/net/https-dns-proxy/files/https-dns-proxy.init index 91c9f1ae03..8dd509edb1 100755 --- a/net/https-dns-proxy/files/https-dns-proxy.init +++ b/net/https-dns-proxy/files/https-dns-proxy.init @@ -46,13 +46,17 @@ start_instance() { append_parm "$cfg" 'proxy_server' '-t' append_parm "$cfg" 'logfile' '-l' append_bool "$cfg" 'use_http1' '-x' - append_bool "$cfg" 'ipv4_resolvers' '-4' config_get verbosity "$cfg" 'verbosity' "0" for i in $(seq 1 $verbosity); do xappend "-v" done + config_get_bool ipv6_resolvers_only "$cfg" 'ipv6_resolvers_only' '0' + if [ "$ipv6_resolvers_only" == 0 ]; then + xappend "-4" + fi + procd_open_instance # shellcheck disable=SC2086 procd_set_param command ${PROG} ${param} @@ -64,22 +68,12 @@ start_instance() { config_get listen_addr "$cfg" 'listen_addr' '127.0.0.1' config_get listen_port "$cfg" 'listen_port' "$p" - # Don't add the any address to dnsmasq - case $listen_addr in - 0.0.0.0|::ffff:0.0.0.0) - listen_addr='127.0.0.1' - ;; - ::) - listen_addr='::1' - ;; - esac - if [ "$dnsmasqConfig" = "*" ]; then config_load 'dhcp' - config_foreach dnsmasq_add_doh_server 'dnsmasq' "${listen_addr}#${listen_port}" + config_foreach dnsmasq_add_doh_server 'dnsmasq' "${listen_addr}" "${listen_port}" elif [ -n "$dnsmasqConfig" ]; then for i in $dnsmasqConfig; do - dnsmasq_add_doh_server "@dnsmasq[${i}]" "${listen_addr}#${listen_port}" + dnsmasq_add_doh_server "@dnsmasq[${i}]" "${listen_addr}" "${listen_port}" done fi p="$((p+1))" @@ -117,9 +111,20 @@ service_triggers() { } dnsmasq_add_doh_server() { - local cfg="$1" value="$2" - uci -q del_list dhcp."$cfg".server="$value" - uci -q add_list dhcp."$cfg".server="$value" + local cfg="$1" address="$2" port="$3" + + # Don't add the any address to dnsmasq + case $address in + 0.0.0.0|::ffff:0.0.0.0) + address='127.0.0.1' + ;; + ::) + address='::1' + ;; + esac + + uci -q del_list dhcp."$cfg".server="$address#$port" + uci -q add_list dhcp."$cfg".server="$address#$port" } dnsmasq_create_server_backup() { -- 2.30.2