From 2753a44440157f9a9077e99ab6bd8dd65a9ff631 Mon Sep 17 00:00:00 2001 From: Andrey Petelin Date: Sun, 31 Aug 2025 19:43:21 +0500 Subject: [PATCH] feat: Add domain_resolver parameter to DNS server configurations in sing-box manager script --- .../files/usr/lib/sing_box_config_manager.sh | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/podkop/files/usr/lib/sing_box_config_manager.sh b/podkop/files/usr/lib/sing_box_config_manager.sh index 2cb8d08..19a1534 100644 --- a/podkop/files/usr/lib/sing_box_config_manager.sh +++ b/podkop/files/usr/lib/sing_box_config_manager.sh @@ -97,17 +97,22 @@ sing_box_cm_add_udp_dns_server() { local tag="$2" local server_address="$3" local server_port="$4" + local domain_resolver="$5" echo "$config" | jq \ --arg tag "$tag" \ --arg server_address "$server_address" \ --arg server_port "$server_port" \ - '.dns.servers += [{ - type: "udp", - tag: $tag, - server: $server_address, - server_port: ($server_port | tonumber) - }]' + --arg domain_resolver "$domain_resolver" \ + '.dns.servers += [( + { + type: "udp", + tag: $tag, + server: $server_address, + server_port: ($server_port | tonumber) + } + + (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end) + )]' } ####################################### @@ -127,17 +132,22 @@ sing_box_cm_add_tls_dns_server() { local tag="$2" local server_address="$3" local server_port="$4" + local domain_resolver="$5" echo "$config" | jq \ --arg tag "$tag" \ --arg server_address "$server_address" \ --arg server_port "$server_port" \ - '.dns.servers += [{ - type: "tls", - tag: $tag, - server: $server_address, - server_port: ($server_port | tonumber) - }]' + --arg domain_resolver "$domain_resolver" \ + '.dns.servers += [( + { + type: "tls", + tag: $tag, + server: $server_address, + server_port: ($server_port | tonumber) + } + + (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end) + )]' } ####################################### @@ -161,6 +171,7 @@ sing_box_cm_add_https_dns_server() { local server_port="$4" local path="$5" local headers="$6" + local domain_resolver="$7" echo "$config" | jq \ --arg tag "$tag" \ @@ -168,6 +179,7 @@ sing_box_cm_add_https_dns_server() { --arg server_port "$server_port" \ --arg path "$path" \ --arg headers "$headers" \ + --arg domain_resolver "$domain_resolver" \ '.dns.servers += [( { type: "https", @@ -177,6 +189,7 @@ sing_box_cm_add_https_dns_server() { } + (if $path != "" then { path: $path } else {} end) + (if $headers != "" then { headers: $headers } else {} end) + + (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end) )]' } @@ -1204,4 +1217,4 @@ sing_box_cm_save_config_to_file() { --arg tag "$SERVICE_TAG" \ 'walk(if type == "object" then del(.[$tag]) else . end)' \ > "$file_path" -} \ No newline at end of file +}