|
|
@ -1,39 +1,37 @@ |
|
|
|
#!/bin/sh /etc/rc.common |
|
|
|
|
|
|
|
START=80 |
|
|
|
|
|
|
|
USE_PROCD=1 |
|
|
|
PROG=/usr/sbin/https_dns_proxy |
|
|
|
|
|
|
|
start_instance() { |
|
|
|
local cfg="$1" |
|
|
|
local listen_addr listen_port user group |
|
|
|
|
|
|
|
config_get listen_addr "$cfg" listen_addr |
|
|
|
config_get listen_port "$cfg" listen_port |
|
|
|
config_get user "$cfg" user |
|
|
|
config_get group "$cfg" group |
|
|
|
config_get subnet_addr "$cfg" subnet_addr |
|
|
|
config_get proxy_server "$cfg" proxy_server |
|
|
|
config_get url_prefix "$cfg" url_prefix |
|
|
|
PROG=/usr/sbin/https_dns_proxy |
|
|
|
|
|
|
|
if [ -n "$subnet_addr" ]; then |
|
|
|
subnet_param="-e $subnet_addr" |
|
|
|
fi |
|
|
|
xappend() { param="$param $1"; } |
|
|
|
|
|
|
|
append_parm() { |
|
|
|
local section="$1" |
|
|
|
local option="$2" |
|
|
|
local switch="$3" |
|
|
|
local default="$4" |
|
|
|
local _loctmp |
|
|
|
config_get _loctmp "$section" "$option" "$default" |
|
|
|
[ -z "$_loctmp" ] && return 0 |
|
|
|
xappend "$switch $_loctmp" |
|
|
|
} |
|
|
|
|
|
|
|
if [ -n "$proxy_server" ]; then |
|
|
|
proxy_param="-t $proxy_server" |
|
|
|
fi |
|
|
|
start_instance() { |
|
|
|
local cfg="$1" param |
|
|
|
|
|
|
|
if [ -z "$url_prefix" ]; then |
|
|
|
url_prefix="https://dns.google.com/resolve?" |
|
|
|
fi |
|
|
|
append_parm "$cfg" 'listen_addr' '-a' '127.0.0.1' |
|
|
|
append_parm "$cfg" 'listen_port' '-p' '5053' |
|
|
|
append_parm "$cfg" 'bootstrap_dns' '-b' |
|
|
|
append_parm "$cfg" 'url_prefix' '-r' |
|
|
|
append_parm "$cfg" 'user' '-u' 'nobody' |
|
|
|
append_parm "$cfg" 'group' '-g' 'nogroup' |
|
|
|
append_parm "$cfg" 'subnet_addr' '-e' |
|
|
|
append_parm "$cfg" 'proxy_server' '-t' |
|
|
|
|
|
|
|
procd_open_instance |
|
|
|
procd_set_param command ${PROG} \ |
|
|
|
-a "$listen_addr" -p "$listen_port" \ |
|
|
|
-u "$user" -g "$group" $subnet_param $proxy_param \ |
|
|
|
-r "$url_prefix" |
|
|
|
procd_set_param command ${PROG} ${param} |
|
|
|
procd_set_param respawn |
|
|
|
procd_close_instance |
|
|
|
} |
|
|
|