|
|
@ -31,16 +31,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 |
|
|
|
|
|
|
@ -54,19 +44,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 |
|
|
|
|
|
|
|
config_load 'dhcp' |
|
|
|
# shellcheck disable=SC2154 |
|
|
|
config_foreach dnsmasq_add_doh_server 'dnsmasq' "${listen_addr}#${listen_port}" |
|
|
|