https_dns_proxy: Added optional ipv4 resolvers
authorGerard Ryan <G.M0N3Y.2503@gmail.com>
Sun, 15 Dec 2019 06:04:44 +0000 (16:04 +1000)
committerGerard Ryan <G.M0N3Y.2503@gmail.com>
Tue, 10 Mar 2020 08:48:05 +0000 (18:48 +1000)
* Added optional ipv4 resolvers UCI config option
* Added logging to logd
* Refactored verbosity UCI config option
* Filtered out any address from being added to dnsmasq

Signed-off-by: Gerard Ryan <G.M0N3Y.2503@gmail.com>
net/https-dns-proxy/files/https-dns-proxy.config
net/https-dns-proxy/files/https-dns-proxy.init

index 3c5eecf4d1c006899524ea6dd7ee892db748fb64..7f8ecd5979b0afc75edfdcd9694e6b37c7f8d720 100644 (file)
@@ -8,6 +8,8 @@ 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'
@@ -16,3 +18,5 @@ 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
index 0767da9353ec5618bb338ff4321a22b0563610a9..91c9f1ae03b0ea189f5874d0690232a864e2e53b 100755 (executable)
@@ -33,16 +33,6 @@ append_parm() {
        xappend "$switch $_loctmp"
 }
 
-append_match() {
-       local section="$1"
-       local option="$2"
-       local value="$3"
-       local match="$4"
-       local _loctmp
-       config_get_bool _loctmp "$section" "$option"
-       [ "$_loctmp" = "$match" ] && xappend "$value"
-}
-
 start_instance() {
        local cfg="$1" param listen_addr listen_port i
 
@@ -56,19 +46,34 @@ start_instance() {
        append_parm "$cfg" 'proxy_server' '-t'
        append_parm "$cfg" 'logfile' '-l'
        append_bool "$cfg" 'use_http1' '-x'
-       append_match "$cfg" 'verbosity' '-v' '1'
-       append_match "$cfg" 'verbosity' '-vv' '2'
-       append_match "$cfg" 'verbosity' '-vvv' '3'
-       append_match "$cfg" 'verbosity' '-vvvv' '4'
+       append_bool "$cfg" 'ipv4_resolvers' '-4'
+
+       config_get verbosity "$cfg" 'verbosity' "0"
+       for i in $(seq 1 $verbosity); do
+               xappend "-v"
+       done
 
        procd_open_instance
 # shellcheck disable=SC2086
-       procd_set_param command ${PROG} -4 ${param}
+       procd_set_param command ${PROG} ${param}
+       procd_set_param stderr 1
+       procd_set_param stdout 1
        procd_set_param respawn
        procd_close_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}"