diff --git a/AGHTechDoc.md b/AGHTechDoc.md
index 3045d6f7..e8f98db4 100644
--- a/AGHTechDoc.md
+++ b/AGHTechDoc.md
@@ -831,7 +831,7 @@ Response:
{
"protection_enabled": true | false,
"ratelimit": 1234,
- "blocking_mode": "nxdomain" | "null_ip" | "custom_ip",
+ "blocking_mode": "default" | "nxdomain" | "null_ip" | "custom_ip",
"blocking_ipv4": "1.2.3.4",
"blocking_ipv6": "1:2:3::4",
"edns_cs_enabled": true | false,
@@ -848,7 +848,7 @@ Request:
{
"protection_enabled": true | false,
"ratelimit": 1234,
- "blocking_mode": "nxdomain" | "null_ip" | "custom_ip",
+ "blocking_mode": "default" | "nxdomain" | "null_ip" | "custom_ip",
"blocking_ipv4": "1.2.3.4",
"blocking_ipv6": "1:2:3::4",
"edns_cs_enabled": true | false,
@@ -859,6 +859,12 @@ Response:
200 OK
+`blocking_mode`:
+* default: Respond with NXDOMAIN when blocked by Adblock-style rule; respond with the IP address specified in the rule when blocked by /etc/hosts-style rule
+* NXDOMAIN: Respond with NXDOMAIN code
+* Null IP: Respond with zero IP address (0.0.0.0 for A; :: for AAAA)
+* Custom IP: Respond with a manually set IP address
+
`blocking_ipv4` and `blocking_ipv6` values are active when `blocking_mode` is set to `custom_ip`.
diff --git a/client/src/__locales/en.json b/client/src/__locales/en.json
index 18e2d059..9de02278 100644
--- a/client/src/__locales/en.json
+++ b/client/src/__locales/en.json
@@ -191,6 +191,7 @@
"query_log_retention_confirm": "Are you sure you want to change query log retention? If you decrease the interval value, some data will be lost",
"dns_config": "DNS server configuration",
"blocking_mode": "Blocking mode",
+ "default": "Default",
"nxdomain": "NXDOMAIN",
"null_ip": "Null IP",
"custom_ip": "Custom IP",
@@ -203,7 +204,10 @@
"rate_limit_desc": "The number of requests per second that a single client is allowed to make (0: unlimited)",
"blocking_ipv4_desc": "IP address to be returned for a blocked A request",
"blocking_ipv6_desc": "IP address to be returned for a blocked AAAA request",
- "blocking_mode_desc": "<0>NXDOMAIN – Respond with NXDOMAIN code;0> <0>Null IP – Respond with zero IP address (0.0.0.0 for A; :: for AAAA);0> <0>Custom IP - Respond with a manually set IP address.0>",
+ "blocking_mode_default": "Default: Respond with NXDOMAIN when blocked by Adblock-style rule; respond with the IP address specified in the rule when blocked by /etc/hosts-style rule",
+ "blocking_mode_nxdomain": "NXDOMAIN: Respond with NXDOMAIN code",
+ "blocking_mode_null_ip": "Null IP: Respond with zero IP address (0.0.0.0 for A; :: for AAAA)",
+ "blocking_mode_custom_ip": "Custom IP: Respond with a manually set IP address",
"upstream_dns_client_desc": "If you keep this field empty, AdGuard Home will use the servers configured in the <0>DNS settings0>.",
"source_label": "Source",
"found_in_known_domain_db": "Found in the known domains database.",
diff --git a/client/src/components/Settings/Dns/Config/Form.js b/client/src/components/Settings/Dns/Config/Form.js
index 271ae3c5..580f09d4 100644
--- a/client/src/components/Settings/Dns/Config/Form.js
+++ b/client/src/components/Settings/Dns/Config/Form.js
@@ -83,7 +83,11 @@ let Form = ({