@ -10,7 +10,7 @@
#
LC_ALL = C
PATH = "/usr/sbin:/usr/bin:/sbin:/bin"
adb_ver = "3.0.0 "
adb_ver = "3.0.1 "
adb_sysver = " $( ubus -S call system board | jsonfilter -e '@.release.description' ) "
adb_enabled = 0
adb_debug = 0
@ -85,8 +85,42 @@ f_envload()
config_load adblock
config_foreach parse_config source
# set dns backend environment
# set/check dns backend environment
#
case " ${ adb_dns } " in
dnsmasq)
adb_dnsuser = " ${ adb_dns } "
adb_dnsdir = " ${ adb_dnsdir :- "/tmp/dnsmasq.d" } "
adb_dnsformat = "awk '{print \"local=/\"\$0\"/\"}'"
; ;
unbound)
adb_dnsuser = " ${ adb_dns } "
adb_dnsdir = " ${ adb_dnsdir :- "/var/lib/unbound" } "
adb_dnsformat = "awk '{print \"local-zone: \042\"\$0\"\042 static\"}'"
; ;
named)
adb_dnsuser = "bind"
adb_dnsdir = " ${ adb_dnsdir :- "/var/lib/bind" } "
adb_dnsformat = "awk '{print \"\"\$0\" IN CNAME .\n*.\"\$0\" IN CNAME .\"}'"
; ;
kresd)
adb_dnsuser = "root"
adb_dnsdir = " ${ adb_dnsdir :- "/etc/kresd" } "
adb_dnsformat = "awk '{print \"\"\$0\" CNAME .\n*.\"\$0\" CNAME .\"}'"
adb_dnsheader = "\$TTL 2h" $'\n' "@ IN SOA localhost. root.localhost. (2 6h 1h 1w 2h)" $'\n' " IN NS localhost."
; ;
dnscrypt-proxy)
adb_dnsuser = "nobody"
adb_dnsdir = " ${ adb_dnsdir :- "/tmp" } "
adb_dnsformat = "awk '{print \$0}'"
; ;
esac
if [ -d " ${ adb_dnsdir } " ] && [ ! -f " ${ adb_dnsdir } / ${ adb_dnsfile } " ]
then
> " ${ adb_dnsdir } / ${ adb_dnsfile } "
fi
case " ${ adb_action } " in
start| restart| reload)
> " ${ adb_rtfile } "
@ -96,48 +130,18 @@ f_envload()
fi
; ;
esac
while [ ${ cnt } -le 30 ]
do
dns_up = " $( ubus -S call service list " {\"name\":\" ${ adb_dns } \"} " 2>/dev/null | jsonfilter -l1 -e " @[\" ${ adb_dns } \"].instances.*.running " 2>/dev/null) "
if [ " ${ dns_up } " = "true" ]
then
case " ${ adb_dns } " in
dnsmasq)
adb_dnsuser = " ${ adb_dns } "
adb_dnsdir = " ${ adb_dnsdir :- "/tmp/dnsmasq.d" } "
adb_dnsformat = "awk '{print \"local=/\"\$0\"/\"}'"
break
; ;
unbound)
adb_dnsuser = " ${ adb_dns } "
adb_dnsdir = " ${ adb_dnsdir :- "/var/lib/unbound" } "
adb_dnsformat = "awk '{print \"local-zone: \042\"\$0\"\042 static\"}'"
break
; ;
named)
adb_dnsuser = "bind"
adb_dnsdir = " ${ adb_dnsdir :- "/var/lib/bind" } "
adb_dnsformat = "awk '{print \"\"\$0\" IN CNAME .\n*.\"\$0\" IN CNAME .\"}'"
break
; ;
kresd)
adb_dnsuser = "root"
adb_dnsdir = " ${ adb_dnsdir :- "/etc/kresd" } "
adb_dnsformat = "awk '{print \"\"\$0\" CNAME .\n*.\"\$0\" CNAME .\"}'"
adb_dnsheader = "\$TTL 2h" $'\n' "@ IN SOA localhost. root.localhost. (2 6h 1h 1w 2h)" $'\n' " IN NS localhost."
break
; ;
dnscrypt-proxy)
adb_dnsuser = "nobody"
adb_dnsdir = " ${ adb_dnsdir :- "/tmp" } "
adb_dnsformat = "awk '{print \$0}'"
break
; ;
esac
break
fi
sleep 1
cnt = $(( cnt+1))
done
if [ -z " ${ adb_dns } " ] || [ -z " ${ adb_dnsformat } " ] || [ ! -x " $( command -v ${ adb_dns } ) " ] || [ ! -d " ${ adb_dnsdir } " ]
then
f_log "error" " ' ${ adb_dns } ' not running, DNS backend not found "
@ -620,7 +624,7 @@ f_main()
else
> " ${ adb_dnsdir } / ${ adb_dnsfile } "
fi
chown " ${ adb_dnsuser } " :" ${ adb_dnsuser } " " ${ adb_dnsdir } / ${ adb_dnsfile } " 2>/dev/null
chown " ${ adb_dnsuser } " " ${ adb_dnsdir } / ${ adb_dnsfile } " 2>/dev/null
f_rmtemp
# conditional restart of the dns backend and runtime information export