feat: Add domain_resolver parameter to DNS server configurations in sing-box manager script

This commit is contained in:
Andrey Petelin
2025-08-31 19:43:21 +05:00
parent cd1a4e2a8e
commit 2753a44440

View File

@@ -97,17 +97,22 @@ sing_box_cm_add_udp_dns_server() {
local tag="$2" local tag="$2"
local server_address="$3" local server_address="$3"
local server_port="$4" local server_port="$4"
local domain_resolver="$5"
echo "$config" | jq \ echo "$config" | jq \
--arg tag "$tag" \ --arg tag "$tag" \
--arg server_address "$server_address" \ --arg server_address "$server_address" \
--arg server_port "$server_port" \ --arg server_port "$server_port" \
'.dns.servers += [{ --arg domain_resolver "$domain_resolver" \
type: "udp", '.dns.servers += [(
tag: $tag, {
server: $server_address, type: "udp",
server_port: ($server_port | tonumber) 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 tag="$2"
local server_address="$3" local server_address="$3"
local server_port="$4" local server_port="$4"
local domain_resolver="$5"
echo "$config" | jq \ echo "$config" | jq \
--arg tag "$tag" \ --arg tag "$tag" \
--arg server_address "$server_address" \ --arg server_address "$server_address" \
--arg server_port "$server_port" \ --arg server_port "$server_port" \
'.dns.servers += [{ --arg domain_resolver "$domain_resolver" \
type: "tls", '.dns.servers += [(
tag: $tag, {
server: $server_address, type: "tls",
server_port: ($server_port | tonumber) 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 server_port="$4"
local path="$5" local path="$5"
local headers="$6" local headers="$6"
local domain_resolver="$7"
echo "$config" | jq \ echo "$config" | jq \
--arg tag "$tag" \ --arg tag "$tag" \
@@ -168,6 +179,7 @@ sing_box_cm_add_https_dns_server() {
--arg server_port "$server_port" \ --arg server_port "$server_port" \
--arg path "$path" \ --arg path "$path" \
--arg headers "$headers" \ --arg headers "$headers" \
--arg domain_resolver "$domain_resolver" \
'.dns.servers += [( '.dns.servers += [(
{ {
type: "https", type: "https",
@@ -177,6 +189,7 @@ sing_box_cm_add_https_dns_server() {
} }
+ (if $path != "" then { path: $path } else {} end) + (if $path != "" then { path: $path } else {} end)
+ (if $headers != "" then { headers: $headers } else {} end) + (if $headers != "" then { headers: $headers } else {} end)
+ (if $domain_resolver != "" then { domain_resolver: $domain_resolver } else {} end)
)]' )]'
} }