diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2b060ada..61f8706a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,8 @@ NOTE: Add new changes BELOW THIS COMMENT.
### Added
+- The ability to set custom IP for EDNS Client Subnet by using the DNS-server
+ configuration section on the DNS settings page in the UI ([#1472]).
- The ability to manage safesearch for each service by using the new
`safe_search` field ([#1163]).
@@ -68,6 +70,7 @@ In this release, the schema version has changed from 17 to 19.
([#5584]).
[#1163]: https://github.com/AdguardTeam/AdGuardHome/issues/1163
+[#1472]: https://github.com/AdguardTeam/AdGuardHome/issues/1472
[#5567]: https://github.com/AdguardTeam/AdGuardHome/issues/5567
[#5584]: https://github.com/AdguardTeam/AdGuardHome/issues/5584
diff --git a/client/src/__locales/en.json b/client/src/__locales/en.json
index 2afa38bd..5ccd771b 100644
--- a/client/src/__locales/en.json
+++ b/client/src/__locales/en.json
@@ -290,6 +290,8 @@
"rate_limit": "Rate limit",
"edns_enable": "Enable EDNS client subnet",
"edns_cs_desc": "Add the EDNS Client Subnet option (ECS) to upstream requests and log the values sent by the clients in the query log.",
+ "edns_use_custom_ip": "Use custom IP for EDNS",
+ "edns_use_custom_ip_desc": "Allow to use custom IP for EDNS",
"rate_limit_desc": "The number of requests per second allowed per client. Setting it to 0 means no limit.",
"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",
@@ -642,5 +644,6 @@
"anonymizer_notification": "<0>Note:0> IP anonymization is enabled. You can disable it in <1>General settings1>.",
"confirm_dns_cache_clear": "Are you sure you want to clear DNS cache?",
"cache_cleared": "DNS cache successfully cleared",
- "clear_cache": "Clear cache"
+ "clear_cache": "Clear cache",
+ "make_static": "Make static"
}
diff --git a/client/src/components/Dashboard/BlockedDomains.js b/client/src/components/Dashboard/BlockedDomains.js
index 144f5bee..73829a1b 100644
--- a/client/src/components/Dashboard/BlockedDomains.js
+++ b/client/src/components/Dashboard/BlockedDomains.js
@@ -29,8 +29,11 @@ const BlockedDomains = ({
blockedFiltering,
replacedSafebrowsing,
replacedParental,
+ replacedSafesearch,
}) => {
- const totalBlocked = blockedFiltering + replacedSafebrowsing + replacedParental;
+ const totalBlocked = (
+ blockedFiltering + replacedSafebrowsing + replacedParental + replacedSafesearch
+ );
return (
diff --git a/client/src/components/Settings/Dhcp/Leases.js b/client/src/components/Settings/Dhcp/Leases.js
index 70400538..96ca8852 100644
--- a/client/src/components/Settings/Dhcp/Leases.js
+++ b/client/src/components/Settings/Dhcp/Leases.js
@@ -1,9 +1,11 @@
import React, { Component } from 'react';
+import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import ReactTable from 'react-table';
import { Trans, withTranslation } from 'react-i18next';
import { LEASES_TABLE_DEFAULT_PAGE_SIZE } from '../../../helpers/constants';
import { sortIp } from '../../../helpers/helpers';
+import { toggleLeaseModal } from '../../../actions';
class Leases extends Component {
cellWrap = ({ value }) => (
@@ -14,6 +16,30 @@ class Leases extends Component {
);
+ convertToStatic = (data) => () => {
+ const { dispatch } = this.props;
+ dispatch(toggleLeaseModal(data));
+ }
+
+ makeStatic = ({ row }) => {
+ const { t, disabledLeasesButton } = this.props;
+ return (
+