dnsproxy: fix set hosts options
authorTianling Shen <[email protected]>
Mon, 23 Sep 2024 07:12:53 +0000 (15:12 +0800)
committerTianling Shen <[email protected]>
Mon, 23 Sep 2024 10:18:47 +0000 (18:18 +0800)
1. Mount hosts files since the daemon is in ujail
2. Set hosts options at last as all other options set after it will
   be ignored

Drop redundant reload_service func while at it.

Fixes: ecdf98767e03 ("dnsproxy: add hosts configurations")
Signed-off-by: Tianling Shen <[email protected]>
net/dnsproxy/Makefile
net/dnsproxy/files/dnsproxy.init

index e10c3f7bcb0025d26d9ff0e793297cd670b75a50..be43de98feb2e8f0c19c56ecd2cd6bb27622da6f 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsproxy
 PKG_VERSION:=0.73.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)?
index 5602a0df5c44c1f378c4f27a5f637a6c909abbda..86062d142a6a8b7979021727ff774d10c9886750 100644 (file)
@@ -64,10 +64,6 @@ load_config_list() {
 
        is_empty "bogus_nxdomain" "ip_addr" || config_list_foreach "bogus_nxdomain" "ip_addr" "append_param '--bogus-nxdomain'"
 
-       is_enabled "hosts" "enabled" && {
-               config_list_foreach "hosts" "hosts_files" "append_param '--hosts-files'"
-       }
-
        is_enabled "private_rdns" "enabled" && {
                append_param "--use-private-rdns"
                config_list_foreach "private_rdns" "upstream" "append_param '--private-rdns-upstream'"
@@ -86,8 +82,6 @@ load_config_param() {
        append_param_arg "global" "udp_buf_size" "--udp-buf-size"
        append_param_arg "global" "upstream_mode" "--upstream-mode"
 
-       append_param_arg "hosts" "enabled" "--hosts-file-enabled" "0"
-
        is_enabled "cache" "enabled" && {
                append_param "--cache"
                append_param_bool "cache" "cache_optimistic"
@@ -132,6 +126,12 @@ start_service() {
        load_config_list
        load_config_param
 
+       # This must be set at last, all other options set after this will be ignored
+       is_enabled "hosts" "enabled" && {
+               append_param "--hosts-file-enabled" "true"
+               config_list_foreach "hosts" "hosts_files" "append_param '--hosts-files'"
+       } || append_param "--hosts-file-enabled" "false"
+
        procd_set_param respawn
        procd_set_param stdout 1
        procd_set_param stderr 1
@@ -139,19 +139,16 @@ start_service() {
 
        procd_add_jail dnsproxy ronly log
        procd_set_param capabilities "/etc/capabilities/dnsproxy.json"
+       procd_add_jail_mount "/etc/hosts"
        procd_add_jail_mount "/etc/ssl/certs/ca-certificates.crt"
        [ -z "$log_file" ] || procd_add_jail_mount_rw "$log_file"
        [ -z "$tls_crt" ] || procd_add_jail_mount "$tls_crt"
        [ -z "$tls_key" ] || procd_add_jail_mount "$tls_key"
+       is_enabled "hosts" "enabled" && config_list_foreach "hosts" "hosts_files" "procd_add_jail_mount"
 
        procd_close_instance
 }
 
-reload_service() {
-       stop
-       start
-}
-
 service_triggers() {
        procd_add_reload_trigger "$CONF"
 }