From ccb5de44367f4d5e93b05ae2e6753b6f87d31e92 Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Thu, 23 Aug 2018 15:05:23 -0700 Subject: [PATCH] https-dns-proxy: new init script and config files Signed-off-by: Stan Grishin --- net/https-dns-proxy/Makefile | 2 +- .../files/https_dns_proxy.config | 13 ++++- .../files/https_dns_proxy.init | 50 +++++++++---------- 3 files changed, 37 insertions(+), 28 deletions(-) diff --git a/net/https-dns-proxy/Makefile b/net/https-dns-proxy/Makefile index 3a8e75404..6e9f8e1cd 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:=2018-04-23 -PKG_RELEASE=1 +PKG_RELEASE=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_MIRROR_HASH:=24b7e4238c37e646f33eee3a374f6b7beb5c167b9c5008cc13b51e5f1f3a44ea diff --git a/net/https-dns-proxy/files/https_dns_proxy.config b/net/https-dns-proxy/files/https_dns_proxy.config index b124aeb9d..b5b49ba66 100644 --- a/net/https-dns-proxy/files/https_dns_proxy.config +++ b/net/https-dns-proxy/files/https_dns_proxy.config @@ -1,8 +1,19 @@ config https_dns_proxy option listen_addr '127.0.0.1' option listen_port '5053' + option bootstrap_dns '8.8.8.8,8.8.4.4' + option url_prefix 'https://dns.google.com/resolve?' + option user 'nobody' + option group 'nogroup' + option subnet_addr '' + option proxy_server '' + +config https_dns_proxy + option listen_addr '127.0.0.1' + option listen_port '5054' + option bootstrap_dns '1.1.1.1,1.0.0.1' + option url_prefix 'https://cloudflare-dns.com/dns-query?ct=application/dns-json&' option user 'nobody' option group 'nogroup' option subnet_addr '' option proxy_server '' - option url_prefix 'https://dns.google.com/resolve?' diff --git a/net/https-dns-proxy/files/https_dns_proxy.init b/net/https-dns-proxy/files/https_dns_proxy.init index 9a5f79792..645c17aa4 100644 --- a/net/https-dns-proxy/files/https_dns_proxy.init +++ b/net/https-dns-proxy/files/https_dns_proxy.init @@ -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 }