Compare commits

...

8 Commits

Author SHA1 Message Date
Ildar Kamalov d3f39b0aa1 Pull request: 4637 fix blocked services icons and actions highlight
Updates #4637

Squashed commit of the following:

commit d69887586d15582406fab642e576a46f8984107b
Merge: 65453371 e738508d
Author: Ildar Kamalov <ik@adguard.com>
Date:   Fri Jun 10 12:07:29 2022 +0300

    Merge branch 'master' into 4637-table

commit 65453371fc7309e772a12fb9f522247e1392a64a
Author: Ildar Kamalov <ik@adguard.com>
Date:   Thu Jun 9 18:43:44 2022 +0300

    client: fix blocked services icons and actions highlight
2022-06-10 12:41:20 +03:00
Ainar Garipov e738508d7a Pull request: all: imp updater
Merge in DNS/adguard-home from imp-updater to master

Squashed commit of the following:

commit 6ed487359e56a35b36f13dcbf2efbf2a7a2d8734
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Thu Jun 9 16:29:35 2022 +0300

    all: imp logs, err handling

commit e930044cb619a43e5a44c230dadbe2228e9a93f5
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Thu Jun 9 15:53:35 2022 +0300

    all: imp updater
2022-06-09 17:47:05 +03:00
Ildar Kamalov 302faca32f Pull request: 4642 update dns addresses on encryption update
Updates #4642

Squashed commit of the following:

commit 75729120d3532dc2bd12b6c9e724a691043a1870
Merge: 5b681867 1c1ca1c6
Author: Ildar Kamalov <ik@adguard.com>
Date:   Thu Jun 9 11:58:13 2022 +0300

    Merge branch 'master' into 4642-dns-privacy

commit 5b68186705c3a9287a44e33c8cf7ab79060f35a4
Author: Ildar Kamalov <ik@adguard.com>
Date:   Tue Jun 7 18:39:02 2022 +0300

    fix

commit 46a9346154d33206e829a97021f3ef47ac2a5611
Author: Ildar Kamalov <ik@adguard.com>
Date:   Tue Jun 7 18:18:18 2022 +0300

    client: update dns addresses on encryption update
2022-06-09 12:07:29 +03:00
Ildar Kamalov 1c1ca1c6e3 Pull request: 4641 fix button clickable area
Updates #4641

Squashed commit of the following:

commit f9f018388a198d7712e5caabba94035e42e393c4
Author: Ildar Kamalov <ik@adguard.com>
Date:   Tue Jun 7 16:21:37 2022 +0300

    client: fix button clickable area
2022-06-09 11:57:58 +03:00
Ainar Garipov a497dc09ca Pull request: all: upd chlog
Merge in DNS/adguard-home from upd-chlog to master

Squashed commit of the following:

commit 1ca912f4be4a452abc0c8c95a8d6022d547b3394
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Mon Jun 6 18:35:12 2022 +0300

    all: upd chlog
2022-06-06 18:43:35 +03:00
Ainar Garipov 3ce04f48ca Pull request: all: fix quic reply id
Merge in DNS/adguard-home from upd-dnsproxy-quic-fix to master

Squashed commit of the following:

commit a6ffa24769259c73e397e02d087dc155ed58a3e2
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Mon Jun 6 15:06:00 2022 +0300

    all: fix quic reply id
2022-06-06 15:34:08 +03:00
Ainar Garipov 368a98fb29 Pull request: client: upd i18n
Merge in DNS/adguard-home from upd-i18n to master

Squashed commit of the following:

commit 3feadfe31609ef52726b582ad6ba18bfa435a081
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Fri Jun 3 16:34:36 2022 +0300

    client: upd i18n
2022-06-03 16:39:36 +03:00
Ainar Garipov cbe32c5a73 Pull request: all: replace uuid pkg; upd deps
Merge in DNS/adguard-home from 4622-upd-deps to master

Squashed commit of the following:

commit 36f407d8ab103da0f7eacdf91c153c23a5b7c3f2
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Fri Jun 3 15:22:47 2022 +0300

    home: imp mobileconfig uuid gen

commit dddd162461a4830f7c0636338430cd6e77199214
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Fri Jun 3 13:54:29 2022 +0300

    all: replace uuid pkg; upd deps
2022-06-03 15:53:21 +03:00
50 changed files with 303 additions and 266 deletions

View File

@ -12,24 +12,52 @@ and this project adheres to
## [Unreleased] ## [Unreleased]
<!-- <!--
## [v0.108.0] - 2022-07-01 (APPROX.) ## [v0.108.0] - 2022-10-01 (APPROX.)
--> -->
### Security ### Security
- Weaker cipher suites that use the CBC (cipher block chaining) mode of
operation have been disabled ([#2993]).
### Added
- Support for Discovery of Designated Resolvers (DDR) according to the [RFC
draft][ddr-draft-06] ([#4463]).
- `windows/arm64` support ([#3057]).
### Deprecated
- Go 1.17 support. v0.109.0 will require at least Go 1.18 to build.
[#2993]: https://github.com/AdguardTeam/AdGuardHome/issues/2993
[#3057]: https://github.com/AdguardTeam/AdGuardHome/issues/3057
[ddr-draft-06]: https://www.ietf.org/archive/id/draft-ietf-add-ddr-06.html
<!--
## [v0.107.8] - 2022-07-12 (APPROX.)
-->
## [v0.107.7] - 2022-06-06
See also the [v0.107.7 GitHub milestone][ms-v0.107.7].
### Security
- Go version was updated to prevent the possibility of exploiting the - Go version was updated to prevent the possibility of exploiting the
[CVE-2022-29526], [CVE-2022-30634], [CVE-2022-30629], [CVE-2022-30580], and [CVE-2022-29526], [CVE-2022-30634], [CVE-2022-30629], [CVE-2022-30580], and
[CVE-2022-29804] vulnerabilities. [CVE-2022-29804] vulnerabilities.
- Enforced password strength policy ([#3503]). - Enforced password strength policy ([#3503]).
- Weaker cipher suites that use the CBC (cipher block chaining) mode of
operation have been disabled ([#2993]).
### Added ### Added
- Support for the final DNS-over-QUIC standard, [RFC 9250][rfc-9250] ([#4592]). - Support for the final DNS-over-QUIC standard, [RFC 9250][rfc-9250] ([#4592]).
- Support upstreams for subdomains of a domain only ([#4503]). - Support upstreams for subdomains of a domain only ([#4503]).
- Support for Discovery of Designated Resolvers (DDR) according to the [RFC
draft][ddr-draft-06] ([#4463]).
- The ability to control each source of runtime clients separately via - The ability to control each source of runtime clients separately via
`clients.runtime_sources` configuration object ([#3020]). `clients.runtime_sources` configuration object ([#3020]).
- The ability to customize the set of networks that are considered private - The ability to customize the set of networks that are considered private
@ -41,7 +69,6 @@ and this project adheres to
([#4166]). ([#4166]).
- Logs are now collected by default on FreeBSD and OpenBSD when AdGuard Home is - Logs are now collected by default on FreeBSD and OpenBSD when AdGuard Home is
installed as a service ([#4213]). installed as a service ([#4213]).
- `windows/arm64` support ([#3057]).
### Changed ### Changed
@ -125,10 +152,9 @@ In this release, the schema version has changed from 12 to 14.
### Deprecated ### Deprecated
- The `--no-etc-hosts` option. Its' functionality is now controlled by - The `--no-etc-hosts` option. Its functionality is now controlled by
`clients.runtime_sources.hosts` configuration property. v0.109.0 will remove `clients.runtime_sources.hosts` configuration property. v0.109.0 will remove
the flag completely. the flag completely.
- Go 1.17 support. v0.109.0 will require at least Go 1.18 to build.
### Fixed ### Fixed
@ -140,9 +166,7 @@ In this release, the schema version has changed from 12 to 14.
- ARP tables refreshing process causing excessive PTR requests ([#3157]). - ARP tables refreshing process causing excessive PTR requests ([#3157]).
[#1730]: https://github.com/AdguardTeam/AdGuardHome/issues/1730 [#1730]: https://github.com/AdguardTeam/AdGuardHome/issues/1730
[#2993]: https://github.com/AdguardTeam/AdGuardHome/issues/2993
[#3020]: https://github.com/AdguardTeam/AdGuardHome/issues/3020 [#3020]: https://github.com/AdguardTeam/AdGuardHome/issues/3020
[#3057]: https://github.com/AdguardTeam/AdGuardHome/issues/3057
[#3142]: https://github.com/AdguardTeam/AdGuardHome/issues/3142 [#3142]: https://github.com/AdguardTeam/AdGuardHome/issues/3142
[#3157]: https://github.com/AdguardTeam/AdGuardHome/issues/3157 [#3157]: https://github.com/AdguardTeam/AdGuardHome/issues/3157
[#3367]: https://github.com/AdguardTeam/AdGuardHome/issues/3367 [#3367]: https://github.com/AdguardTeam/AdGuardHome/issues/3367
@ -169,20 +193,10 @@ In this release, the schema version has changed from 12 to 14.
[CVE-2022-30580]: https://www.cvedetails.com/cve/CVE-2022-30580 [CVE-2022-30580]: https://www.cvedetails.com/cve/CVE-2022-30580
[CVE-2022-30629]: https://www.cvedetails.com/cve/CVE-2022-30629 [CVE-2022-30629]: https://www.cvedetails.com/cve/CVE-2022-30629
[CVE-2022-30634]: https://www.cvedetails.com/cve/CVE-2022-30634 [CVE-2022-30634]: https://www.cvedetails.com/cve/CVE-2022-30634
[ddr-draft-06]: https://www.ietf.org/archive/id/draft-ietf-add-ddr-06.html [ms-v0.107.7]: https://github.com/AdguardTeam/AdGuardHome/milestone/43?closed=1
[repr]: https://reproducible-builds.org/docs/source-date-epoch/
[rfc-9250]: https://datatracker.ietf.org/doc/html/rfc9250 [rfc-9250]: https://datatracker.ietf.org/doc/html/rfc9250
<!--
## [v0.107.7] - 2022-05-18 (APPROX.)
See also the [v0.107.7 GitHub milestone][ms-v0.107.7].
[ms-v0.107.7]: https://github.com/AdguardTeam/AdGuardHome/milestone/43?closed=1
-->
## [v0.107.6] - 2022-04-13 ## [v0.107.6] - 2022-04-13
@ -234,6 +248,7 @@ See also the [v0.107.6 GitHub milestone][ms-v0.107.6].
[CVE-2022-28327]: https://www.cvedetails.com/cve/CVE-2022-28327 [CVE-2022-28327]: https://www.cvedetails.com/cve/CVE-2022-28327
[dns-draft-02]: https://datatracker.ietf.org/doc/html/draft-ietf-add-svcb-dns-02#section-5.1 [dns-draft-02]: https://datatracker.ietf.org/doc/html/draft-ietf-add-svcb-dns-02#section-5.1
[ms-v0.107.6]: https://github.com/AdguardTeam/AdGuardHome/milestone/42?closed=1 [ms-v0.107.6]: https://github.com/AdguardTeam/AdGuardHome/milestone/42?closed=1
[repr]: https://reproducible-builds.org/docs/source-date-epoch/
[svcb-draft-08]: https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-08.html [svcb-draft-08]: https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-08.html
@ -995,11 +1010,12 @@ See also the [v0.104.2 GitHub milestone][ms-v0.104.2].
<!-- <!--
[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.7...HEAD [Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.8...HEAD
[v0.107.7]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.6...v0.107.7 [v0.107.8]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.7...v0.107.8
--> -->
[Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.6...HEAD [Unreleased]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.7...HEAD
[v0.107.7]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.6...v0.107.7
[v0.107.6]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.5...v0.107.6 [v0.107.6]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.5...v0.107.6
[v0.107.5]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.4...v0.107.5 [v0.107.5]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.4...v0.107.5
[v0.107.4]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.3...v0.107.4 [v0.107.4]: https://github.com/AdguardTeam/AdGuardHome/compare/v0.107.3...v0.107.4

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "звычайны DNS (праз UDP, імя хаста);", "example_upstream_udp": "звычайны DNS (праз UDP, імя хаста);",
"example_upstream_dot": "зашыфраваны <0>DNS-over-TLS</0>;", "example_upstream_dot": "зашыфраваны <0>DNS-over-TLS</0>;",
"example_upstream_doh": "зашыфраваны <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "зашыфраваны <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "зашыфраваны <0>DNS-over-QUIC (эксперыментальны)</0>;", "example_upstream_doq": "зашыфраваны <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamps</0> для <1>DNSCrypt</1> ці <2>DNS-over-HTTPS</2> рэзалвераў;", "example_upstream_sdns": "<0>DNS Stamps</0> для <1>DNSCrypt</1> ці <2>DNS-over-HTTPS</2> рэзалвераў;",
"example_upstream_tcp": "звычайны DNS (наўзверх TCP);", "example_upstream_tcp": "звычайны DNS (наўзверх TCP);",
"example_upstream_tcp_hostname": "звычайны DNS (праз TCP, імя хаста);", "example_upstream_tcp_hostname": "звычайны DNS (праз TCP, імя хаста);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Калі порт HTTPS наладжаны, ўэб-інтэрфейс адміністравання AdGuard Home будзе даступны праз HTTPS, а таксама DNS-over-HTTPS сервер будзе даступны па шляху '/dns-query'.", "encryption_https_desc": "Калі порт HTTPS наладжаны, ўэб-інтэрфейс адміністравання AdGuard Home будзе даступны праз HTTPS, а таксама DNS-over-HTTPS сервер будзе даступны па шляху '/dns-query'.",
"encryption_dot": "Порт DNS-over-TLS", "encryption_dot": "Порт DNS-over-TLS",
"encryption_dot_desc": "Калі гэты порт наладжаны, AdGuard Home запусціць DNS-over-TLS-сервер на гэтаму порту.", "encryption_dot_desc": "Калі гэты порт наладжаны, AdGuard Home запусціць DNS-over-TLS-сервер на гэтаму порту.",
"encryption_doq": "Порт DNS-over-QUIC (эксперыментальны)", "encryption_doq": "Порт DNS-over-QUIC",
"encryption_doq_desc": "Калі гэты порт наладжаны, AdGuard Home запусціць сервер DNS-over-QUIC на гэтым порце. Гэта эксперыментальна і можа быць ненадзейна. Апроч таго, не так шмат кліентаў падтрымвае гэты спосаб цяпер.", "encryption_doq_desc": "Калі гэты порт наладжаны, AdGuard Home запусціць сервер DNS-over-QUIC на гэтым порце.",
"encryption_certificates": "Сертыфікаты", "encryption_certificates": "Сертыфікаты",
"encryption_certificates_desc": "Для выкарыстання шыфравання вам трэба падаць валідны ланцужок SSL-сертыфікатаў для вашага дамена. Вы можаце атрымаць дармовы сертыфікат на <0>{{link}}</0> ці вы можаце купіць яго ў аднаго з давераных Цэнтраў Сертыфікацыі.", "encryption_certificates_desc": "Для выкарыстання шыфравання вам трэба падаць валідны ланцужок SSL-сертыфікатаў для вашага дамена. Вы можаце атрымаць дармовы сертыфікат на <0>{{link}}</0> ці вы можаце купіць яго ў аднаго з давераных Цэнтраў Сертыфікацыі.",
"encryption_certificates_input": "Скапіюйце сюды сертыфікаты ў PEM-кадоўцы.", "encryption_certificates_input": "Скапіюйце сюды сертыфікаты ў PEM-кадоўцы.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "obvyklý DNS (skrze UDP, název hostitele);", "example_upstream_udp": "obvyklý DNS (skrze UDP, název hostitele);",
"example_upstream_dot": "šifrovaný <0>DNS skrze TLS</0>;", "example_upstream_dot": "šifrovaný <0>DNS skrze TLS</0>;",
"example_upstream_doh": "šifrovaný <0>DNS skrze HTTPS</0>;", "example_upstream_doh": "šifrovaný <0>DNS skrze HTTPS</0>;",
"example_upstream_doq": "šifrovaný <0>DNS skrze QUIC</0> (experimentální);", "example_upstream_doq": "šifrovaný <0>DNS skrze QUIC</0>;",
"example_upstream_sdns": "<0>DNS razítka</0> pro <1>DNSCrypt</1> nebo <2>DNS skrze HTTPS</2> řešitele;", "example_upstream_sdns": "<0>DNS razítka</0> pro <1>DNSCrypt</1> nebo <2>DNS skrze HTTPS</2> řešitele;",
"example_upstream_tcp": "obvyklý DNS (přes TCP);", "example_upstream_tcp": "obvyklý DNS (přes TCP);",
"example_upstream_tcp_hostname": "obvyklý DNS (skrze TCP, název hostitele);", "example_upstream_tcp_hostname": "obvyklý DNS (skrze TCP, název hostitele);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Pokud je nakonfigurován port HTTPS, AdGuard Home administrátorské rozhraní bude přístupné přes HTTPS a bude také poskytovat DNS skrze HTTPS na '/dns-query'.", "encryption_https_desc": "Pokud je nakonfigurován port HTTPS, AdGuard Home administrátorské rozhraní bude přístupné přes HTTPS a bude také poskytovat DNS skrze HTTPS na '/dns-query'.",
"encryption_dot": "DNS skrze TLS port", "encryption_dot": "DNS skrze TLS port",
"encryption_dot_desc": "Pokud je tento port nakonfigurován, AdGuard Home bude na tomto portu spouštět DNS skrze TLS server.", "encryption_dot_desc": "Pokud je tento port nakonfigurován, AdGuard Home bude na tomto portu spouštět DNS skrze TLS server.",
"encryption_doq": "Port DNS skrze QUIC (experimentální)", "encryption_doq": "Port DNS skrze QUIC",
"encryption_doq_desc": "Pokud je tento port nakonfigurován, AdGuard Home spustí na tomto portu server DNS skrze QUIC. Je to experimentální a nemusí být spolehlivé. V současnosti také není příliš mnoho klientů, kteří to podporují.", "encryption_doq_desc": "Pokud je tento port nakonfigurován, AdGuard Home bude na tomto portu spouštět DNS skrze QUIC server.",
"encryption_certificates": "Certifikáty", "encryption_certificates": "Certifikáty",
"encryption_certificates_desc": "Chcete-li používat šifrování, musíte pro svou doménu poskytnout platný řetězec certifikátů SSL. Certifikát můžete získat bezplatně na adrese <0>{{link}}</ 0>, nebo jej můžete zakoupit od jednoho z důvěryhodných certifikačních úřadů.", "encryption_certificates_desc": "Chcete-li používat šifrování, musíte pro svou doménu poskytnout platný řetězec certifikátů SSL. Certifikát můžete získat bezplatně na adrese <0>{{link}}</ 0>, nebo jej můžete zakoupit od jednoho z důvěryhodných certifikačních úřadů.",
"encryption_certificates_input": "Zde můžete nakopírovat/vložit certifikáty PEM.", "encryption_certificates_input": "Zde můžete nakopírovat/vložit certifikáty PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "almindelig DNS (over UDP, værtsnavn);", "example_upstream_udp": "almindelig DNS (over UDP, værtsnavn);",
"example_upstream_dot": "krypteret <0>DNS-over-TLS</0>", "example_upstream_dot": "krypteret <0>DNS-over-TLS</0>",
"example_upstream_doh": "krypteret <0>DNS-over-HTTPS</0>", "example_upstream_doh": "krypteret <0>DNS-over-HTTPS</0>",
"example_upstream_doq": "krypteret <0>DNS-over-QUIC</0>(eksperimentel);", "example_upstream_doq": "krypteret <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamps</0> til <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-opløsere;", "example_upstream_sdns": "<0>DNS Stamps</0> til <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-opløsere;",
"example_upstream_tcp": "almindelig DNS (over TCP)", "example_upstream_tcp": "almindelig DNS (over TCP)",
"example_upstream_tcp_hostname": "almindelig DNS (over TCP, værtsnavn);", "example_upstream_tcp_hostname": "almindelig DNS (over TCP, værtsnavn);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Er HTTPS-porten opsat, vil AdGuard Home admin grænsefladen være tilgængelig via HTTPS, og den vil muliggøre DNS-over-HTTPS på '/dns-query' placeringen.", "encryption_https_desc": "Er HTTPS-porten opsat, vil AdGuard Home admin grænsefladen være tilgængelig via HTTPS, og den vil muliggøre DNS-over-HTTPS på '/dns-query' placeringen.",
"encryption_dot": "DNS-over-TLS port", "encryption_dot": "DNS-over-TLS port",
"encryption_dot_desc": "Er denne port opsat, vil AdGuard Home køre en DNS-over-TLS server på denne port.", "encryption_dot_desc": "Er denne port opsat, vil AdGuard Home køre en DNS-over-TLS server på denne port.",
"encryption_doq": "DNS-over-QUIC port (eksperimentel)", "encryption_doq": "DNS-over-QUIC port",
"encryption_doq_desc": "Er denne port opsat, vil AdGuard Home køre en DNS-over-QUIC server på denne port. Den er eksperimentel og er måske ikke pålidelig. Derudover understøttes den pt. heller ikke af ret mange klienter.", "encryption_doq_desc": "Er denne port opsat, vil AdGuard Home køre en DNS-over-QUIC server på denne port. ",
"encryption_certificates": "Certifikater", "encryption_certificates": "Certifikater",
"encryption_certificates_desc": "For at kunne bruge kryptering skal du angive en gyldig SSL-certifikatkæde til dit domæne. Du kan få et gratis certifikat via <0>{{link}}</ 0>, eller du kan købe det via en af de betroede Certifikatmyndigheder.", "encryption_certificates_desc": "For at kunne bruge kryptering skal du angive en gyldig SSL-certifikatkæde til dit domæne. Du kan få et gratis certifikat via <0>{{link}}</ 0>, eller du kan købe det via en af de betroede Certifikatmyndigheder.",
"encryption_certificates_input": "Kopiér/indsæt dine PEM-kodede certifikater hér.", "encryption_certificates_input": "Kopiér/indsæt dine PEM-kodede certifikater hér.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "normales DNS (über UDP, Hostname);", "example_upstream_udp": "normales DNS (über UDP, Hostname);",
"example_upstream_dot": "verschlüsseltes <0>DNS-over-TLS</0>;", "example_upstream_dot": "verschlüsseltes <0>DNS-over-TLS</0>;",
"example_upstream_doh": "verschlüsseltes <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "verschlüsseltes <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "verschlüsseltes <0>DNS-over-QUIC</0> (experimentell);", "example_upstream_doq": "verschlüsseltes <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS-Stempel</0> für <1>DNSCrypt</1> oder <2>DNS-over-HTTPS</2> Resolver;", "example_upstream_sdns": "<0>DNS-Stempel</0> für <1>DNSCrypt</1> oder <2>DNS-over-HTTPS</2> Resolver;",
"example_upstream_tcp": "reguläres DNS (over TCP);", "example_upstream_tcp": "reguläres DNS (over TCP);",
"example_upstream_tcp_hostname": "normales DNS (über TCP, Hostname);", "example_upstream_tcp_hostname": "normales DNS (über TCP, Hostname);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Wenn der HTTPS-Port konfiguriert ist, ist die AdGuard Home-Administrationsschnittstelle über HTTPS zugänglich und bietet auch DNS-over-HTTPS am Server „/dns-query“.", "encryption_https_desc": "Wenn der HTTPS-Port konfiguriert ist, ist die AdGuard Home-Administrationsschnittstelle über HTTPS zugänglich und bietet auch DNS-over-HTTPS am Server „/dns-query“.",
"encryption_dot": "DNS-over-TLS", "encryption_dot": "DNS-over-TLS",
"encryption_dot_desc": "Wenn dieser Port konfiguriert ist, führt AdGuard Home auf diesem Port einen DNS-over-TLS-Server aus.", "encryption_dot_desc": "Wenn dieser Port konfiguriert ist, führt AdGuard Home auf diesem Port einen DNS-over-TLS-Server aus.",
"encryption_doq": "Port für DNS-over-QUIC (experimentell)", "encryption_doq": "Port für DNS-over-QUIC",
"encryption_doq_desc": "Wenn dieser Port eingerichtet ist, wird AdGuard Home einen DNS-over-QUIC-Server auf diesem Port ausführen. Es ist experimentell und möglicherweise nicht zuverlässig. Außerdem gibt es im Moment nicht allzu viele Clients, die ihn unterstützen.", "encryption_doq_desc": "Wenn dieser Port eingerichtet ist, wird AdGuard Home einen DNS-over-QUIC-Server auf diesem Port ausführen. ",
"encryption_certificates": "Zertifikate", "encryption_certificates": "Zertifikate",
"encryption_certificates_desc": "Um die Verschlüsselung verwenden zu können, müssen Sie eine gültige SSL-Zertifikatskette für Ihre Domain angeben. Sie können ein kostenloses Zertifikat für <0>{{link}}</0> erhalten oder es bei einer der vertrauenswürdigen Zertifizierungsstellen kaufen.", "encryption_certificates_desc": "Um die Verschlüsselung verwenden zu können, müssen Sie eine gültige SSL-Zertifikatskette für Ihre Domain angeben. Sie können ein kostenloses Zertifikat für <0>{{link}}</0> erhalten oder es bei einer der vertrauenswürdigen Zertifizierungsstellen kaufen.",
"encryption_certificates_input": "Kopieren Sie Ihre PEM-codierten Zertifikate und fügen Sie sie hier ein.", "encryption_certificates_input": "Kopieren Sie Ihre PEM-codierten Zertifikate und fügen Sie sie hier ein.",

View File

@ -445,7 +445,7 @@
"access_blocked_title": "Disallowed domains", "access_blocked_title": "Disallowed domains",
"access_blocked_desc": "Not to be confused with filters. AdGuard Home drops DNS queries matching these domains, and these queries don't even appear in the query log. You can specify exact domain names, wildcards, or URL filter rules, e.g. \"example.org\", \"*.example.org\", or \"||example.org^\" correspondingly.", "access_blocked_desc": "Not to be confused with filters. AdGuard Home drops DNS queries matching these domains, and these queries don't even appear in the query log. You can specify exact domain names, wildcards, or URL filter rules, e.g. \"example.org\", \"*.example.org\", or \"||example.org^\" correspondingly.",
"access_settings_saved": "Access settings successfully saved", "access_settings_saved": "Access settings successfully saved",
"updates_checked": "Updates successfully checked", "updates_checked": "A new version of AdGuard Home is available",
"updates_version_equal": "AdGuard Home is up-to-date", "updates_version_equal": "AdGuard Home is up-to-date",
"check_updates_now": "Check for updates now", "check_updates_now": "Check for updates now",
"dns_privacy": "DNS Privacy", "dns_privacy": "DNS Privacy",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS regular (mediante UDP, nombre del host).", "example_upstream_udp": "DNS regular (mediante UDP, nombre del host).",
"example_upstream_dot": "cifrado <0>DNS mediante TLS</0>.", "example_upstream_dot": "cifrado <0>DNS mediante TLS</0>.",
"example_upstream_doh": "cifrado <0>DNS mediante HTTPS</0>.", "example_upstream_doh": "cifrado <0>DNS mediante HTTPS</0>.",
"example_upstream_doq": "cifrado <0>DNS mediante QUIC</0> (experimental).", "example_upstream_doq": "cifrado <0>DNS mediante QUIC</0>.",
"example_upstream_sdns": "<0>DNS Stamps</0> para <1>DNSCrypt</1> o resolutores <2>DNS mediante HTTPS</2>.", "example_upstream_sdns": "<0>DNS Stamps</0> para <1>DNSCrypt</1> o resolutores <2>DNS mediante HTTPS</2>.",
"example_upstream_tcp": "DNS regular (mediante TCP).", "example_upstream_tcp": "DNS regular (mediante TCP).",
"example_upstream_tcp_hostname": "DNS regular (mediante TCP, nombre del host).", "example_upstream_tcp_hostname": "DNS regular (mediante TCP, nombre del host).",
@ -369,8 +369,8 @@
"encryption_https_desc": "Si el puerto HTTPS está configurado, la interfaz de administración de AdGuard Home será accesible a través de HTTPS, y también proporcionará DNS mediante HTTPS en la ubicación '/dns-query'.", "encryption_https_desc": "Si el puerto HTTPS está configurado, la interfaz de administración de AdGuard Home será accesible a través de HTTPS, y también proporcionará DNS mediante HTTPS en la ubicación '/dns-query'.",
"encryption_dot": "Puerto DNS mediante TLS", "encryption_dot": "Puerto DNS mediante TLS",
"encryption_dot_desc": "Si este puerto está configurado, AdGuard Home ejecutará un servidor DNS mediante TLS en este puerto.", "encryption_dot_desc": "Si este puerto está configurado, AdGuard Home ejecutará un servidor DNS mediante TLS en este puerto.",
"encryption_doq": "Puerto DNS mediante QUIC (experimental)", "encryption_doq": "Puerto DNS mediante QUIC",
"encryption_doq_desc": "Si este puerto está configurado, AdGuard Home ejecutará un servidor DNS mediante QUIC en este puerto. Es experimental y puede no ser confiable. Además, no hay muchos clientes que lo soporten por el momento.", "encryption_doq_desc": "Si este puerto está configurado, AdGuard Home ejecutará un servidor DNS mediante QUIC en este puerto.",
"encryption_certificates": "Certificados", "encryption_certificates": "Certificados",
"encryption_certificates_desc": "Para utilizar el cifrado, debes proporcionar una cadena de certificado SSL válida para tu dominio. Puedes obtener un certificado gratuito en <0>{{link}}</0> o puedes comprarlo en una de las autoridades de certificación de confianza.", "encryption_certificates_desc": "Para utilizar el cifrado, debes proporcionar una cadena de certificado SSL válida para tu dominio. Puedes obtener un certificado gratuito en <0>{{link}}</0> o puedes comprarlo en una de las autoridades de certificación de confianza.",
"encryption_certificates_input": "Copia/pega aquí tu certificado codificado PEM.", "encryption_certificates_input": "Copia/pega aquí tu certificado codificado PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "tavallinen DNS (UDP, isäntänimi);", "example_upstream_udp": "tavallinen DNS (UDP, isäntänimi);",
"example_upstream_dot": "salattu <0>DNS-over-TLS</0>;", "example_upstream_dot": "salattu <0>DNS-over-TLS</0>;",
"example_upstream_doh": "salattu <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "salattu <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "salattu <0>DNS-over-QUIC</0> (kokeellinen);", "example_upstream_doq": "salattu <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamp</0> -merkinnät <1>DNSCrypt</1> tai <2>DNS-over-HTTPS</2> -resolvereille;", "example_upstream_sdns": "<0>DNS Stamp</0> -merkinnät <1>DNSCrypt</1> tai <2>DNS-over-HTTPS</2> -resolvereille;",
"example_upstream_tcp": "tavallinen DNS (TCP:n välityksellä);", "example_upstream_tcp": "tavallinen DNS (TCP:n välityksellä);",
"example_upstream_tcp_hostname": "tavallinen DNS (TCP, isäntänimi);", "example_upstream_tcp_hostname": "tavallinen DNS (TCP, isäntänimi);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Jos HTTPS-portti on määritetty, on AdGuard Homen hallintapaneeli käytettävissä HTTPS-yhteydellä ja lisäksi tämä mahdollistaa myös DNS-over-HTTPS -yhteyden '/dns-query' -kohteessa.", "encryption_https_desc": "Jos HTTPS-portti on määritetty, on AdGuard Homen hallintapaneeli käytettävissä HTTPS-yhteydellä ja lisäksi tämä mahdollistaa myös DNS-over-HTTPS -yhteyden '/dns-query' -kohteessa.",
"encryption_dot": "DNS-over-TLS -portti", "encryption_dot": "DNS-over-TLS -portti",
"encryption_dot_desc": "Jos portti on määritetty, AdGuard Home suorittaa DNS-over-TLS -palvelimen tässä portissa.", "encryption_dot_desc": "Jos portti on määritetty, AdGuard Home suorittaa DNS-over-TLS -palvelimen tässä portissa.",
"encryption_doq": "DNS-over-QUIC -portti (kokeellinen)", "encryption_doq": "DNS-over-QUIC-portti",
"encryption_doq_desc": "Jos portti on määritetty, AdGuard Home suorittaa DNS-over-QUIC -palvelimen tässä portissa. Ominaisuus on kokeellinen, eikä välttämättä luotettava. Lisäksi tätä tukevia päätelaitteita ei vielä ole kovin paljon.", "encryption_doq_desc": "Jos portti on määritetty, AdGuard Home suorittaa DNS-over-QUIC-palvelimen tässä portissa.",
"encryption_certificates": "Varmenteet", "encryption_certificates": "Varmenteet",
"encryption_certificates_desc": "Salauksen käyttämiseksi, on syötettävä verkkotunnuksellesi myönnetty, aito SSL-varmenneketju. Voit hankkia ilmaisen varmenteen osoitteesta <0>{{link}}</0> tai ostaa sellaisen joltakin luotetulta varmentajalta.", "encryption_certificates_desc": "Salauksen käyttämiseksi, on syötettävä verkkotunnuksellesi myönnetty, aito SSL-varmenneketju. Voit hankkia ilmaisen varmenteen osoitteesta <0>{{link}}</0> tai ostaa sellaisen joltakin luotetulta varmentajalta.",
"encryption_certificates_input": "Kopioi/liitä PEM-koodatut varmenteesi tähän.", "encryption_certificates_input": "Kopioi/liitä PEM-koodatut varmenteesi tähän.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS normal (sur UDP, nom dhôte) ;", "example_upstream_udp": "DNS normal (sur UDP, nom dhôte) ;",
"example_upstream_dot": "<0>DNS-over-TLS</0> chiffré ;", "example_upstream_dot": "<0>DNS-over-TLS</0> chiffré ;",
"example_upstream_doh": "<0>DNS-over-HTTPS</0> chiffré ;", "example_upstream_doh": "<0>DNS-over-HTTPS</0> chiffré ;",
"example_upstream_doq": "<0>DNS-over-QUIC</0> chiffré (expérimental) ;", "example_upstream_doq": "<0>DNS-over-QUIC</0> chiffré;",
"example_upstream_sdns": "vous pouvez utiliser <0>DNS Stamps</0> pour <1>DNSCrypt</1> ou les résolveurs <2>DNS_over_HTTPS</2> ;", "example_upstream_sdns": "vous pouvez utiliser <0>DNS Stamps</0> pour <1>DNSCrypt</1> ou les résolveurs <2>DNS_over_HTTPS</2> ;",
"example_upstream_tcp": "DNS classique (au-dessus de TCP) ;", "example_upstream_tcp": "DNS classique (au-dessus de TCP) ;",
"example_upstream_tcp_hostname": "DNS normal (sur TCP, nom dhôte) ;", "example_upstream_tcp_hostname": "DNS normal (sur TCP, nom dhôte) ;",
@ -369,8 +369,8 @@
"encryption_https_desc": "Si le port HTTPS est configuré, l'interface administrateur de AdGuard Home sera accessible via HTTPS et fournira aussi un service DNS-over-HTTPS sur l'emplacement '/dns-query'.", "encryption_https_desc": "Si le port HTTPS est configuré, l'interface administrateur de AdGuard Home sera accessible via HTTPS et fournira aussi un service DNS-over-HTTPS sur l'emplacement '/dns-query'.",
"encryption_dot": "Port DNS-over-TLS", "encryption_dot": "Port DNS-over-TLS",
"encryption_dot_desc": "Si ce port est configuré, AdGuard Home exécutera un serveur DNS-over-TLS sur ce port.", "encryption_dot_desc": "Si ce port est configuré, AdGuard Home exécutera un serveur DNS-over-TLS sur ce port.",
"encryption_doq": "Port DNS sur QUIC (expérimental)", "encryption_doq": "Port DNS sur QUIC",
"encryption_doq_desc": "Si ce port est configuré, AdGuard Home exécutera un serveur DNS sur QUIC sur ce port. Ceci est expérimental et possiblement pas entièrement fiable. Peu de clients le prennent en charge actuellement.", "encryption_doq_desc": "Si ce port est configuré, AdGuard Home exécutera un serveur DNS sur QUIC sur ce port. ",
"encryption_certificates": "Certificats", "encryption_certificates": "Certificats",
"encryption_certificates_desc": "Pour utiliser le chiffrement, vous devez fournir une chaîne de certificats SSL valide pour votre domaine. Vous pouvez en obtenir une gratuitement sur <0>{{link}}</0> ou vous pouvez en acheter une via les Autorités de Certification de confiance.", "encryption_certificates_desc": "Pour utiliser le chiffrement, vous devez fournir une chaîne de certificats SSL valide pour votre domaine. Vous pouvez en obtenir une gratuitement sur <0>{{link}}</0> ou vous pouvez en acheter une via les Autorités de Certification de confiance.",
"encryption_certificates_input": "Copiez/coller vos certificats encodés PEM ici.", "encryption_certificates_input": "Copiez/coller vos certificats encodés PEM ici.",

View File

@ -370,7 +370,7 @@
"encryption_dot": "DNS-over-TLS port", "encryption_dot": "DNS-over-TLS port",
"encryption_dot_desc": "Ako je ovaj port postavljen, AdGuard Home će pokrenuti DNS-over-TLS poslužitelj na ovom portu.", "encryption_dot_desc": "Ako je ovaj port postavljen, AdGuard Home će pokrenuti DNS-over-TLS poslužitelj na ovom portu.",
"encryption_doq": "DNS-over-QUIC port (eksperimentalno)", "encryption_doq": "DNS-over-QUIC port (eksperimentalno)",
"encryption_doq_desc": "Ako je ovaj port postavljen, AdGuard Home će na ovom portu pokrenuti DNS-over-QUIC poslužitelj. Eksperimentalno je i možda nije pouzdano. Također, trenutno nema previše klijenata koji to podržavaju.", "encryption_doq_desc": "Ako je ovaj priključak konfiguriran, AdGuard Home će na ovom priključku pokretati DNS-over-QUIC poslužitelj.",
"encryption_certificates": "Certifikati", "encryption_certificates": "Certifikati",
"encryption_certificates_desc": "Da biste koristili šifriranje, za svoju domenu morate osigurati važeći lanac SSL certifikata. Besplatan certifikat možete dobiti na <0>{{link}}</0> ili ga možete kupiti od jednog od pouzdanih izdavatelja certifikata.", "encryption_certificates_desc": "Da biste koristili šifriranje, za svoju domenu morate osigurati važeći lanac SSL certifikata. Besplatan certifikat možete dobiti na <0>{{link}}</0> ili ga možete kupiti od jednog od pouzdanih izdavatelja certifikata.",
"encryption_certificates_input": "Zalijepite svoje PEM-kodirane certifikate ovdje.", "encryption_certificates_input": "Zalijepite svoje PEM-kodirane certifikate ovdje.",
@ -511,7 +511,7 @@
"statistics_configuration": "Postavke statistike", "statistics_configuration": "Postavke statistike",
"statistics_retention": "Spremanje statistike", "statistics_retention": "Spremanje statistike",
"statistics_retention_desc": "Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni", "statistics_retention_desc": "Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni",
"statistics_clear": " Poništi statistiku", "statistics_clear": "Poništi statistiku",
"statistics_clear_confirm": "Jeste li sigurni da želite poništiti statistiku?", "statistics_clear_confirm": "Jeste li sigurni da želite poništiti statistiku?",
"statistics_retention_confirm": "Jeste li sigurni da želite promijeniti zadržavanje statistike? Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni", "statistics_retention_confirm": "Jeste li sigurni da želite promijeniti zadržavanje statistike? Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni",
"statistics_cleared": "Statistika je uspješno uklonjenja", "statistics_cleared": "Statistika je uspješno uklonjenja",

View File

@ -9,7 +9,7 @@
"bootstrap_dns": "Bootstrap DNS kiszolgálók", "bootstrap_dns": "Bootstrap DNS kiszolgálók",
"bootstrap_dns_desc": "A Bootstrap DNS szerverek a DoH/DoT feloldók IP-címeinek feloldására szolgálnak.", "bootstrap_dns_desc": "A Bootstrap DNS szerverek a DoH/DoT feloldók IP-címeinek feloldására szolgálnak.",
"local_ptr_title": "Privát DNS szerverek", "local_ptr_title": "Privát DNS szerverek",
"local_ptr_desc": "Azok a DNS szerverek, amiket az AdGuard Home a helyi PTR kérésekhez használ. Ezeket a szervereket arra használjuk, hogy reverse DNS által feloldjuk a kliensek hosztneveit privát IP címekre, például \"192.168.12.34\". Ha nincs beállítva, akkor az AdGuard Home, kivéve az ő saját címét, az operációs rendszer alapértelmezett DNS feloldók címeit fogja használni.", "local_ptr_desc": "Azok a DNS szerverek, amiket az AdGuard Home a helyi PTR kérésekhez használ. ",
"local_ptr_default_resolver": "Alapesetben az AdGuard Home a következő reverse DNS feloldókat használja: {{ip}}.", "local_ptr_default_resolver": "Alapesetben az AdGuard Home a következő reverse DNS feloldókat használja: {{ip}}.",
"local_ptr_no_default_resolver": "Az AdGuard Home nem tudta meghatározni a privát reverse DNS feloldókat ehhez a rendszerhez.", "local_ptr_no_default_resolver": "Az AdGuard Home nem tudta meghatározni a privát reverse DNS feloldókat ehhez a rendszerhez.",
"local_ptr_placeholder": "Adjon meg soronként egy kiszolgáló címet", "local_ptr_placeholder": "Adjon meg soronként egy kiszolgáló címet",
@ -213,7 +213,7 @@
"example_upstream_udp": "normál DNS (UDP felett, hostnév);", "example_upstream_udp": "normál DNS (UDP felett, hostnév);",
"example_upstream_dot": "titkosított <0>DNS-over-TLS</0>;", "example_upstream_dot": "titkosított <0>DNS-over-TLS</0>;",
"example_upstream_doh": "titkosított <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "titkosított <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "titkosított <0>DNS-over-QUIC</0> (kísérleti);", "example_upstream_doq": "titkosított <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamps</0> a <1>DNSCrypt</1> vagy <2>DNS-over-HTTPS</2> feloldókhoz;", "example_upstream_sdns": "<0>DNS Stamps</0> a <1>DNSCrypt</1> vagy <2>DNS-over-HTTPS</2> feloldókhoz;",
"example_upstream_tcp": "hagyományos DNS (TCP felett);", "example_upstream_tcp": "hagyományos DNS (TCP felett);",
"example_upstream_tcp_hostname": "normál DNS (TCP felett, hostnév);", "example_upstream_tcp_hostname": "normál DNS (TCP felett, hostnév);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Ha a HTTPS port konfigurálva van, akkor az AdGuard Home admin felülete elérhető lesz a HTTPS-en keresztül, és ezenkívül DNS-over-HTTPS-t is biztosít a '/dns-query' helyen.", "encryption_https_desc": "Ha a HTTPS port konfigurálva van, akkor az AdGuard Home admin felülete elérhető lesz a HTTPS-en keresztül, és ezenkívül DNS-over-HTTPS-t is biztosít a '/dns-query' helyen.",
"encryption_dot": "DNS-over-TLS port", "encryption_dot": "DNS-over-TLS port",
"encryption_dot_desc": "Ha ez a port be van állítva, az AdGuard Home DNS-over-TLS szerverként tud futni ezen a porton.", "encryption_dot_desc": "Ha ez a port be van állítva, az AdGuard Home DNS-over-TLS szerverként tud futni ezen a porton.",
"encryption_doq": "DNS-over-QUIC port (kísérleti)", "encryption_doq": "DNS-over-QUIC port",
"encryption_doq_desc": "Ha ez a port be van állítva, akkor az AdGuard Home egy DNS-over-QUIC szerverként fog futni ezen a porton. Ez egy kísérleti funkció és nem biztos, hogy megbízható. Emellett nincs sok olyan kliens, ami támogatná ezt jelenleg.", "encryption_doq_desc": "Ha ez a port be van állítva, akkor az AdGuard Home egy DNS-over-QUIC szerverként fog futni ezen a porton. ",
"encryption_certificates": "Tanúsítványok", "encryption_certificates": "Tanúsítványok",
"encryption_certificates_desc": "A titkosítás használatához érvényes SSL tanúsítványláncot kell megadnia a domainjéhez. Ingyenes tanúsítványt kaphat a <0>{{link}}</0> webhelyen, vagy megvásárolhatja az egyik megbízható tanúsítványkibocsátó hatóságtól.", "encryption_certificates_desc": "A titkosítás használatához érvényes SSL tanúsítványláncot kell megadnia a domainjéhez. Ingyenes tanúsítványt kaphat a <0>{{link}}</0> webhelyen, vagy megvásárolhatja az egyik megbízható tanúsítványkibocsátó hatóságtól.",
"encryption_certificates_input": "Másolja be ide a PEM-kódolt tanúsítványt.", "encryption_certificates_input": "Másolja be ide a PEM-kódolt tanúsítványt.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS biasa (lebih dari UDP, nama host);", "example_upstream_udp": "DNS biasa (lebih dari UDP, nama host);",
"example_upstream_dot": "terenkripsi <0>DNS-over-TLS</0>;", "example_upstream_dot": "terenkripsi <0>DNS-over-TLS</0>;",
"example_upstream_doh": "terenkripsi <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "terenkripsi <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "terenkripsi <0>DNS-over-QUIC</0> (eksperimental);", "example_upstream_doq": "terenkripsi <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>Stempel DNS</0> untuk <1>DNSCrypt</1> atau pengarah <2>DNS-over-HTTPS</2>;", "example_upstream_sdns": "<0>Stempel DNS</0> untuk <1>DNSCrypt</1> atau pengarah <2>DNS-over-HTTPS</2>;",
"example_upstream_tcp": "DNS reguler (melalui TCP);", "example_upstream_tcp": "DNS reguler (melalui TCP);",
"example_upstream_tcp_hostname": "DNS biasa (lebih dari TCP, nama host);", "example_upstream_tcp_hostname": "DNS biasa (lebih dari TCP, nama host);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Jika port HTTPS dikonfigurasi, antarmuka admin Home AdGuard akan dapat diakses melalui HTTPS, dan itu juga akan memberikan DNS-over-HTTPS di lokasi '/ dns-query'.", "encryption_https_desc": "Jika port HTTPS dikonfigurasi, antarmuka admin Home AdGuard akan dapat diakses melalui HTTPS, dan itu juga akan memberikan DNS-over-HTTPS di lokasi '/ dns-query'.",
"encryption_dot": "Port DNS-over-TLS", "encryption_dot": "Port DNS-over-TLS",
"encryption_dot_desc": "Jika port ini terkonfigurasi, AdGuard Home akan menjalankan server DNS-over-TLS dalam port ini", "encryption_dot_desc": "Jika port ini terkonfigurasi, AdGuard Home akan menjalankan server DNS-over-TLS dalam port ini",
"encryption_doq": "Port DNS-over-QUIC (eksperimental)", "encryption_doq": "Port DNS-over-QUIC ",
"encryption_doq_desc": "Jika port ini diatur secara sepesifik, AdGuard Home akan menjalankan server DNS-lewat-QUIC pada port ini. Ini adalah eksperimental dan mungkin tidak dapat diandalkan. Juga, tidak banyak klien yang mendukungnya saat ini.", "encryption_doq_desc": "Jika port ini diatur secara sepesifik, AdGuard Home akan menjalankan server DNS-lewat-QUIC pada port ini.",
"encryption_certificates": "Sertifikat", "encryption_certificates": "Sertifikat",
"encryption_certificates_desc": "Untuk menggunakan enkripsi, Anda perlu memberikan rantai sertifikat SSL yang valid untuk domain Anda. Anda bisa mendapatkan sertifikat gratis di <0>{{link}}</0> atau Anda dapat membelinya dari salah satu Otoritas Sertifikat tepercaya.", "encryption_certificates_desc": "Untuk menggunakan enkripsi, Anda perlu memberikan rantai sertifikat SSL yang valid untuk domain Anda. Anda bisa mendapatkan sertifikat gratis di <0>{{link}}</0> atau Anda dapat membelinya dari salah satu Otoritas Sertifikat tepercaya.",
"encryption_certificates_input": "Salin / rekatkan sertifikat PEM yang disandikan di sini.", "encryption_certificates_input": "Salin / rekatkan sertifikat PEM yang disandikan di sini.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS regolare (over UDP, nome host);", "example_upstream_udp": "DNS regolare (over UDP, nome host);",
"example_upstream_dot": "<0>DNS su TLS</0> crittografato;", "example_upstream_dot": "<0>DNS su TLS</0> crittografato;",
"example_upstream_doh": "<0>DNS su HTTPS</0> crittografato;", "example_upstream_doh": "<0>DNS su HTTPS</0> crittografato;",
"example_upstream_doq": "<0>DNS su QUIC</0> crittografato (sperimentale);", "example_upstream_doq": "<0>DNS su QUIC</0> crittografato;",
"example_upstream_sdns": "<0>DNS Stamps</0> per <1>DNSCrypt</1> oppure i risolutori <2>DNS su HTTPS</2>;", "example_upstream_sdns": "<0>DNS Stamps</0> per <1>DNSCrypt</1> oppure i risolutori <2>DNS su HTTPS</2>;",
"example_upstream_tcp": "DNS regolare (over TCP);", "example_upstream_tcp": "DNS regolare (over TCP);",
"example_upstream_tcp_hostname": "DNS regolare (over TCP, nome host);", "example_upstream_tcp_hostname": "DNS regolare (over TCP, nome host);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Se la porta HTTPS è configurata, l'interfaccia di amministrazione di AdGuard Home sarà accessibile tramite HTTPS e fornirà anche DNS su HTTPS nella posizione \"/ dns-query\".", "encryption_https_desc": "Se la porta HTTPS è configurata, l'interfaccia di amministrazione di AdGuard Home sarà accessibile tramite HTTPS e fornirà anche DNS su HTTPS nella posizione \"/ dns-query\".",
"encryption_dot": "DNS su porta TLS", "encryption_dot": "DNS su porta TLS",
"encryption_dot_desc": "Se questa porta è configurata, AdGuard Home eseguirà un server DNS su TLS su questa porta.", "encryption_dot_desc": "Se questa porta è configurata, AdGuard Home eseguirà un server DNS su TLS su questa porta.",
"encryption_doq": "Porta DNS su QUIC (sperimentale)", "encryption_doq": "Porta DNS su QUIC",
"encryption_doq_desc": "Se questa porta è configurata, AdGuard Home eseguirà un server DNS su porta QUIC. Questa opzione è sperimentale e potrebbe non risultare affidabile. Inoltre, al momento non sono molti i client a supportarla.", "encryption_doq_desc": "Se questa porta è configurata, AdGuard Home eseguirà un server DNS su porta QUIC. ",
"encryption_certificates": "Certificati", "encryption_certificates": "Certificati",
"encryption_certificates_desc": "Per utilizzare la crittografia, è necessario fornire una catena di certificati SSL valida per il proprio dominio. Puoi ottenere un certificato gratuito su <0> {{link}} </ 0> o puoi acquistarlo da una delle Autorità di certificazione attendibili.", "encryption_certificates_desc": "Per utilizzare la crittografia, è necessario fornire una catena di certificati SSL valida per il proprio dominio. Puoi ottenere un certificato gratuito su <0> {{link}} </ 0> o puoi acquistarlo da una delle Autorità di certificazione attendibili.",
"encryption_certificates_input": "Copia / incolla qui i certificati codificati PEM.", "encryption_certificates_input": "Copia / incolla qui i certificati codificati PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "通常のDNSover UDP, ホスト名)。", "example_upstream_udp": "通常のDNSover UDP, ホスト名)。",
"example_upstream_dot": "暗号化されている <0>DNS-over-TLS</0>。", "example_upstream_dot": "暗号化されている <0>DNS-over-TLS</0>。",
"example_upstream_doh": "暗号化されている <0>DNS-over-HTTPS</0>。", "example_upstream_doh": "暗号化されている <0>DNS-over-HTTPS</0>。",
"example_upstream_doq": "暗号化 <0>DNS-over-QUIC</0>(実験的)。", "example_upstream_doq": "暗号化 <0>DNS-over-QUIC</0>。",
"example_upstream_sdns": "<1>DNSCrypt</1> または <2>DNS-over-HTTPS</2> リゾルバのための <0>DNS Stamps</0>。", "example_upstream_sdns": "<1>DNSCrypt</1> または <2>DNS-over-HTTPS</2> リゾルバのための <0>DNS Stamps</0>。",
"example_upstream_tcp": "通常のDNSover TCP。", "example_upstream_tcp": "通常のDNSover TCP。",
"example_upstream_tcp_hostname": "通常のDNSover TCP, ホスト名)。", "example_upstream_tcp_hostname": "通常のDNSover TCP, ホスト名)。",
@ -369,8 +369,8 @@
"encryption_https_desc": "HTTPSポートが設定されていると、AdGuard Home 管理インターフェースはHTTPS経由でアクセス可能になり、そして「/dns-query」の場所にDNS-over-HTTPSも提供されます。", "encryption_https_desc": "HTTPSポートが設定されていると、AdGuard Home 管理インターフェースはHTTPS経由でアクセス可能になり、そして「/dns-query」の場所にDNS-over-HTTPSも提供されます。",
"encryption_dot": "DNS-over-TLS ポート", "encryption_dot": "DNS-over-TLS ポート",
"encryption_dot_desc": "このポートが設定されていると、AdGuard HomeはこのポートでDNS-over-TLSサーバを実行します。", "encryption_dot_desc": "このポートが設定されていると、AdGuard HomeはこのポートでDNS-over-TLSサーバを実行します。",
"encryption_doq": "DNS-over-QUIC ポート (実験的)", "encryption_doq": "DNS-over-QUIC ポート",
"encryption_doq_desc": "このポートが設定されていると、AdGuard HomeはこのポートにてDNS-over-QUICサーバーを実行します。これは実験的なものであり、頼りにならない可能性があります。また、現時点ではこのサーバーをサポートするクライアントも少ないです。", "encryption_doq_desc": "このポートが設定されていると、AdGuard HomeはこのポートにてDNS-over-QUICサーバーを実行します。",
"encryption_certificates": "証明書", "encryption_certificates": "証明書",
"encryption_certificates_desc": "暗号化を使用するには、ドメインに有効なSSL証明書チェーンを提供する必要があります。無料の証明書は<0> {{link}} </0>で入手できます。または、信頼できる認証局のいずれかから購入することもできます。", "encryption_certificates_desc": "暗号化を使用するには、ドメインに有効なSSL証明書チェーンを提供する必要があります。無料の証明書は<0> {{link}} </0>で入手できます。または、信頼できる認証局のいずれかから購入することもできます。",
"encryption_certificates_input": "ここにPEM形式の証明書をコピーペーストしてください。", "encryption_certificates_input": "ここにPEM形式の証明書をコピーペーストしてください。",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "일반 DNS (UDP를 통한, 호스트명);", "example_upstream_udp": "일반 DNS (UDP를 통한, 호스트명);",
"example_upstream_dot": "암호화된 <0>DNS-over-TLS</0>;", "example_upstream_dot": "암호화된 <0>DNS-over-TLS</0>;",
"example_upstream_doh": "암호화된 <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "암호화된 <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "암호화된 <0>DNS-over-QUIC</0> (실험);", "example_upstream_doq": "암호화된 <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<1>DNSCrypt</1> 또는 <2>DNS-over-HTTPS</2> 리졸버를 위한 <0>DNS 스탬프</0>;", "example_upstream_sdns": "<1>DNSCrypt</1> 또는 <2>DNS-over-HTTPS</2> 리졸버를 위한 <0>DNS 스탬프</0>;",
"example_upstream_tcp": "일반 DNS (TCP를 통한 접속);", "example_upstream_tcp": "일반 DNS (TCP를 통한 접속);",
"example_upstream_tcp_hostname": "일반 DNS (TCP를 통한, 호스트명);", "example_upstream_tcp_hostname": "일반 DNS (TCP를 통한, 호스트명);",
@ -369,8 +369,8 @@
"encryption_https_desc": "HTTPS 포트가 구성되면 HTTPS를 통해 AdGuard Home 관리자 인터페이스에 액세스할 수 있으며, '/dns-query' 위치에 DNS-over-HTTPS도 제공합니다.", "encryption_https_desc": "HTTPS 포트가 구성되면 HTTPS를 통해 AdGuard Home 관리자 인터페이스에 액세스할 수 있으며, '/dns-query' 위치에 DNS-over-HTTPS도 제공합니다.",
"encryption_dot": "DNS-over-TLS 포트", "encryption_dot": "DNS-over-TLS 포트",
"encryption_dot_desc": "이 포트가 구성된 경우 AdGuard Home 이 포트에서 DNS-over-TLS 서버를 실행합니다.", "encryption_dot_desc": "이 포트가 구성된 경우 AdGuard Home 이 포트에서 DNS-over-TLS 서버를 실행합니다.",
"encryption_doq": "DNS-over-QUIC 포트 (실험)", "encryption_doq": "DNS-over-QUIC 포트",
"encryption_doq_desc": "이 포트가 설정된 경우 AdGuard Home은 해당 포트에서 DNS-over-QUIC 서버를 실행합니다. 이것은 실험적이며 신뢰할 수 없습니다. 또한 현재 이를 지원하는 클라이언트가 많지 않습니다.", "encryption_doq_desc": "이 포트가 설정된 경우 AdGuard Home은 해당 포트에서 DNS-over-QUIC 서버를 실행합니다. ",
"encryption_certificates": "인증서", "encryption_certificates": "인증서",
"encryption_certificates_desc": "암호화를 사용하려면 도메인에 대해 올바른 SSL 인증서 체인을 제공해야 합니다. <0>{{link}}</0>에서 무료 증명서를 받을 수도 있고, 신뢰할 수있는 인증 기관에서 구입할 수 있습니다.", "encryption_certificates_desc": "암호화를 사용하려면 도메인에 대해 올바른 SSL 인증서 체인을 제공해야 합니다. <0>{{link}}</0>에서 무료 증명서를 받을 수도 있고, 신뢰할 수있는 인증 기관에서 구입할 수 있습니다.",
"encryption_certificates_input": "PEM으로 인코딩된 인증서 여기에 복사/붙여넣기하세요.", "encryption_certificates_input": "PEM으로 인코딩된 인증서 여기에 복사/붙여넣기하세요.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "standaard DNS (via UDP, hostnaam);", "example_upstream_udp": "standaard DNS (via UDP, hostnaam);",
"example_upstream_dot": "versleutelde <0>DNS-via-TLS</0>;", "example_upstream_dot": "versleutelde <0>DNS-via-TLS</0>;",
"example_upstream_doh": "versleutelde <0>DNS-via-HTTPS</0>;", "example_upstream_doh": "versleutelde <0>DNS-via-HTTPS</0>;",
"example_upstream_doq": "versleutelde <0>DNS-via-QUIC</0> (experimenteel);", "example_upstream_doq": "versleutelde <0>DNS-via-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamps</0> voor <1>DNSCrypt</1> of <2>DNS-via-HTTPS</2> oplossingen;", "example_upstream_sdns": "<0>DNS Stamps</0> voor <1>DNSCrypt</1> of <2>DNS-via-HTTPS</2> oplossingen;",
"example_upstream_tcp": "standaard DNS (over TCP);", "example_upstream_tcp": "standaard DNS (over TCP);",
"example_upstream_tcp_hostname": "standaard DNS (via TCP, hostnaam);", "example_upstream_tcp_hostname": "standaard DNS (via TCP, hostnaam);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Als de HTTPS-poort is geconfigureerd, is de AdGuard Home beheerders interface toegankelijk via HTTPS en biedt deze ook DNS-via-HTTPS op de locatie '/ dns-query'.", "encryption_https_desc": "Als de HTTPS-poort is geconfigureerd, is de AdGuard Home beheerders interface toegankelijk via HTTPS en biedt deze ook DNS-via-HTTPS op de locatie '/ dns-query'.",
"encryption_dot": "DNS-via-TLS poort", "encryption_dot": "DNS-via-TLS poort",
"encryption_dot_desc": "Indien deze poort is geconfigureerd, zal AdGuard Home gebruik maken van een DNS-via-TLS server via deze poort.", "encryption_dot_desc": "Indien deze poort is geconfigureerd, zal AdGuard Home gebruik maken van een DNS-via-TLS server via deze poort.",
"encryption_doq": "DNS-via-QUIC poort (experimenteel)", "encryption_doq": "DNS-over-QUIC poort",
"encryption_doq_desc": "Als deze poort is geconfigureerd, zal AdGuard Home een DNS-via-QUIC server gebruiken via deze poort. Dit is experimenteel en kan onbetrouwbaar zijn. Er zijn overigens nog niet veel systemen die dit nu al ondersteunen.", "encryption_doq_desc": "Als deze poort is geconfigureerd, zal AdGuard Home een DNS-via-QUIC server gebruiken via deze poort.",
"encryption_certificates": "Certificaten", "encryption_certificates": "Certificaten",
"encryption_certificates_desc": "Om encryptie te gebruiken, moet u een geldige SSL certificaat voor uw domein opgeven. U kunt een gratis certificaat krijgen op <0> {{link}} </0> of u kunt het kopen bij een van de vertrouwde certificaatautoriteiten.", "encryption_certificates_desc": "Om encryptie te gebruiken, moet u een geldige SSL certificaat voor uw domein opgeven. U kunt een gratis certificaat krijgen op <0> {{link}} </0> of u kunt het kopen bij een van de vertrouwde certificaatautoriteiten.",
"encryption_certificates_input": "Kopieër en plak je PEM-gecodeerde certificaten hier.", "encryption_certificates_input": "Kopieër en plak je PEM-gecodeerde certificaten hier.",

View File

@ -199,7 +199,7 @@
"example_upstream_regular": "vanlig DNS (over UDP)", "example_upstream_regular": "vanlig DNS (over UDP)",
"example_upstream_dot": "kryptert <0>DNS-over-TLS</0>", "example_upstream_dot": "kryptert <0>DNS-over-TLS</0>",
"example_upstream_doh": "kryptert <0>DNS-over-HTTPS</0>", "example_upstream_doh": "kryptert <0>DNS-over-HTTPS</0>",
"example_upstream_doq": "kryptert <0>DNS-over-QUIC</0>", "example_upstream_doq": "kryptert <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "du kan bruke <0>DNS-stempler</0> med <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-behandlere", "example_upstream_sdns": "du kan bruke <0>DNS-stempler</0> med <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-behandlere",
"example_upstream_tcp": "vanlig DNS (over TCP)", "example_upstream_tcp": "vanlig DNS (over TCP)",
"all_lists_up_to_date_toast": "Alle listene er allerede oppdatert", "all_lists_up_to_date_toast": "Alle listene er allerede oppdatert",
@ -354,8 +354,8 @@
"encryption_https_desc": "Dersom HTTPS-porten er satt opp, vil AdGuard Home sitt admin-grensesnitt være tilgjengelig gjennom HTTPS, og vil også sørge for DNS-over-HTTPS på «/dns-query»-plasseringen.", "encryption_https_desc": "Dersom HTTPS-porten er satt opp, vil AdGuard Home sitt admin-grensesnitt være tilgjengelig gjennom HTTPS, og vil også sørge for DNS-over-HTTPS på «/dns-query»-plasseringen.",
"encryption_dot": "'DNS-over-TLS'-port", "encryption_dot": "'DNS-over-TLS'-port",
"encryption_dot_desc": "Dersom denne porten er satt opp, vil AdGuard Home kjøre en 'DNS-over-TLS'-tjener på denne porten.", "encryption_dot_desc": "Dersom denne porten er satt opp, vil AdGuard Home kjøre en 'DNS-over-TLS'-tjener på denne porten.",
"encryption_doq": "'DNS-over-QUIC'-port", "encryption_doq": "DNS-over-QUIC-port",
"encryption_doq_desc": "Dersom denne porten er satt opp, vil AdGuard Home kjøre en DNS-over-QUIC-tjener på denne porten. Den er eksperimentell og vil kanskje ikke være pålitelig. I tillegg er det ikke så altfor mange klienter som støtter det for øyeblikket.", "encryption_doq_desc": "Dersom denne porten er satt opp, vil AdGuard Home kjøre en DNS-over-QUIC-tjener på denne porten. ",
"encryption_certificates": "Sertifikater", "encryption_certificates": "Sertifikater",
"encryption_certificates_desc": "For å bruke kryptering, må du skrive inn et gyldig SSL-sertifikatkjede for domenet ditt. Du kan få et gratis sertifikat hos <0>{{link}}</0>, eller kjøpe et fra en av de troverdige sertifikatsautoritetene.", "encryption_certificates_desc": "For å bruke kryptering, må du skrive inn et gyldig SSL-sertifikatkjede for domenet ditt. Du kan få et gratis sertifikat hos <0>{{link}}</0>, eller kjøpe et fra en av de troverdige sertifikatsautoritetene.",
"encryption_certificates_input": "Kopier / lim inn dine PEM-kodede sertifikater her.", "encryption_certificates_input": "Kopier / lim inn dine PEM-kodede sertifikater her.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "zwykły DNS (przez UDP, nazwa hosta);", "example_upstream_udp": "zwykły DNS (przez UDP, nazwa hosta);",
"example_upstream_dot": "zaszyfrowany <0>DNS-over-TLS</0>;", "example_upstream_dot": "zaszyfrowany <0>DNS-over-TLS</0>;",
"example_upstream_doh": "zaszyfrowany <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "zaszyfrowany <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "zaszyfrowany <0>DNS-over-QUIC</0> (eksperymentalny);", "example_upstream_doq": "zaszyfrowany <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>Stempel DNS</0> dla resolwerów <1>DNSCrypt</1> lub <2>DNS-over-HTTPS</2>;", "example_upstream_sdns": "<0>Stempel DNS</0> dla resolwerów <1>DNSCrypt</1> lub <2>DNS-over-HTTPS</2>;",
"example_upstream_tcp": "zwykły DNS (przez TCP);", "example_upstream_tcp": "zwykły DNS (przez TCP);",
"example_upstream_tcp_hostname": "zwykły DNS (przez TCP, nazwa hosta);", "example_upstream_tcp_hostname": "zwykły DNS (przez TCP, nazwa hosta);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Jeśli port HTTPS jest skonfigurowany, interfejs administratora AdGuard Home będzie dostępny za pośrednictwem protokołu HTTPS i zapewni DNS przez HTTPS w lokalizacji zapytania '/dns-query'.", "encryption_https_desc": "Jeśli port HTTPS jest skonfigurowany, interfejs administratora AdGuard Home będzie dostępny za pośrednictwem protokołu HTTPS i zapewni DNS przez HTTPS w lokalizacji zapytania '/dns-query'.",
"encryption_dot": "Port DNS-over-TLS", "encryption_dot": "Port DNS-over-TLS",
"encryption_dot_desc": "Jeśli ten port jest skonfigurowany, AdGuard Home uruchomi serwer DNS-over-TLS na tym porcie.", "encryption_dot_desc": "Jeśli ten port jest skonfigurowany, AdGuard Home uruchomi serwer DNS-over-TLS na tym porcie.",
"encryption_doq": "Port DNS-over-QUIC (eksperymentalny)", "encryption_doq": "Port DNS-over-QUIC",
"encryption_doq_desc": "Jeśli ten port jest skonfigurowany, AdGuard Home uruchomi serwer DNS-over-QUIC na tym porcie. Jest to funkcja eksperymentalna i może nie być stabilna. Ponadto, w tej chwili nie ma zbyt wielu klientów, którzy go obsługują.", "encryption_doq_desc": "Jeśli ten port jest skonfigurowany, AdGuard Home uruchomi serwer DNS-over-QUIC na tym porcie.",
"encryption_certificates": "Certyfikaty", "encryption_certificates": "Certyfikaty",
"encryption_certificates_desc": "Aby korzystać z szyfrowania, musisz podać prawidłowy łańcuch certyfikatów SSL dla swojej domeny. Możesz uzyskać bezpłatny certyfikat na <0>{{link}}</0> lub możesz go kupić od jednego z zaufanych urzędów certyfikacji.", "encryption_certificates_desc": "Aby korzystać z szyfrowania, musisz podać prawidłowy łańcuch certyfikatów SSL dla swojej domeny. Możesz uzyskać bezpłatny certyfikat na <0>{{link}}</0> lub możesz go kupić od jednego z zaufanych urzędów certyfikacji.",
"encryption_certificates_input": "Kopiuj/wklej tutaj swoje zakodowane certyfikaty PEM.", "encryption_certificates_input": "Kopiuj/wklej tutaj swoje zakodowane certyfikaty PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS normal (através do UDP, nome do servidor);", "example_upstream_udp": "DNS normal (através do UDP, nome do servidor);",
"example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado;", "example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado;",
"example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado;", "example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado;",
"example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado (experimental);", "example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado;",
"example_upstream_sdns": "<0>DNS Stamps</0> para o <1>DNSCrypt</1> ou usar os resolvedores <2>DNS-sobre-HTTPS</2>;", "example_upstream_sdns": "<0>DNS Stamps</0> para o <1>DNSCrypt</1> ou usar os resolvedores <2>DNS-sobre-HTTPS</2>;",
"example_upstream_tcp": "DNS regular (através do TCP);", "example_upstream_tcp": "DNS regular (através do TCP);",
"example_upstream_tcp_hostname": "DNS normal (através do TCP, nome do servidor);", "example_upstream_tcp_hostname": "DNS normal (através do TCP, nome do servidor);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Se a porta HTTPS estiver configurada, a interface administrativa do AdGuard Home será acessível via HTTPS e também fornecerá o DNS-sobre-HTTPS no local '/dns-query'.", "encryption_https_desc": "Se a porta HTTPS estiver configurada, a interface administrativa do AdGuard Home será acessível via HTTPS e também fornecerá o DNS-sobre-HTTPS no local '/dns-query'.",
"encryption_dot": "Porta DNS-sobre-TLS", "encryption_dot": "Porta DNS-sobre-TLS",
"encryption_dot_desc": "Se essa porta estiver configurada, o AdGuard Home irá executar o servidor DNS-sobre- TSL nesta porta.", "encryption_dot_desc": "Se essa porta estiver configurada, o AdGuard Home irá executar o servidor DNS-sobre- TSL nesta porta.",
"encryption_doq": "Porta DNS-sobre-QUIC (experimental)", "encryption_doq": "Porta DNS-sobre-QUIC",
"encryption_doq_desc": "Se esta porta estiver configurada, o AdGuard Home executará um servidor DNS-sobre-QUIC nesta porta. É experimental e pode não ser confiável. Além disso, não há muitos clientes que ofereçam suporte no momento.", "encryption_doq_desc": "Se esta porta estiver configurada, o AdGuard Home executará um servidor DNS-sobre-QUIC nesta porta. ",
"encryption_certificates": "Certificados", "encryption_certificates": "Certificados",
"encryption_certificates_desc": "Para usar criptografia, você precisa fornecer uma cadeia de certificados SSL válida para seu domínio. Você pode obter um certificado gratuito em <0> {{link}}</0> ou pode comprá-lo de uma das autoridades de certificação confiáveis.", "encryption_certificates_desc": "Para usar criptografia, você precisa fornecer uma cadeia de certificados SSL válida para seu domínio. Você pode obter um certificado gratuito em <0> {{link}}</0> ou pode comprá-lo de uma das autoridades de certificação confiáveis.",
"encryption_certificates_input": "Copie/cole aqui seu certificado codificado em PEM.", "encryption_certificates_input": "Copie/cole aqui seu certificado codificado em PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS normal (através do UDP, nome do servidor);", "example_upstream_udp": "DNS normal (através do UDP, nome do servidor);",
"example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado;", "example_upstream_dot": "<0>DNS-sobre-TLS</0> criptografado;",
"example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado;", "example_upstream_doh": "<0>DNS-sobre-HTTPS</0> criptografado;",
"example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado (experimental);", "example_upstream_doq": "<0>DNS-sobre-QUIC</0> criptografado;",
"example_upstream_sdns": "<0>DNS Stamps</0> para o <1>DNSCrypt</1> ou usar os resolvedores <2>DNS-sobre-HTTPS</2>;", "example_upstream_sdns": "<0>DNS Stamps</0> para o <1>DNSCrypt</1> ou usar os resolvedores <2>DNS-sobre-HTTPS</2>;",
"example_upstream_tcp": "DNS regular (através do TCP);", "example_upstream_tcp": "DNS regular (através do TCP);",
"example_upstream_tcp_hostname": "DNS normal (através do TCP, nome do servidor);", "example_upstream_tcp_hostname": "DNS normal (através do TCP, nome do servidor);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Se a porta HTTPS estiver configurada, a interface administrativa do AdGuard Home será acessível via HTTPS e também fornecerá o DNS-sobre-HTTPS no local '/dns-query'.", "encryption_https_desc": "Se a porta HTTPS estiver configurada, a interface administrativa do AdGuard Home será acessível via HTTPS e também fornecerá o DNS-sobre-HTTPS no local '/dns-query'.",
"encryption_dot": "Porta DNS-sobre-TLS", "encryption_dot": "Porta DNS-sobre-TLS",
"encryption_dot_desc": "Se essa porta estiver configurada, o AdGuard Home irá executar o servidor DNS-sobre- TSL nesta porta.", "encryption_dot_desc": "Se essa porta estiver configurada, o AdGuard Home irá executar o servidor DNS-sobre- TSL nesta porta.",
"encryption_doq": "Porta DNS-sobre-QUIC (experimental)", "encryption_doq": "Porta DNS-sobre-QUIC",
"encryption_doq_desc": "Se esta porta estiver configurada, o AdGuard Home executará um servidor DNS-sobre-QUIC nesta porta. É experimental e pode não ser confiável. Além disso, não há demasiados clientes que ofereçam suporte no momento.", "encryption_doq_desc": "Se esta porta estiver configurada, o AdGuard Home executará um servidor DNS-sobre-QUIC nesta porta. ",
"encryption_certificates": "Certificados", "encryption_certificates": "Certificados",
"encryption_certificates_desc": "Para usar criptografia, precisa de fornecer uma cadeia de certificados SSL válida para o seu domínio. Pode obter um certificado gratuito em <0> {{link}}</0> ou pode comprá-lo numa das autoridades de certificação confiáveis.", "encryption_certificates_desc": "Para usar criptografia, precisa de fornecer uma cadeia de certificados SSL válida para o seu domínio. Pode obter um certificado gratuito em <0> {{link}}</0> ou pode comprá-lo numa das autoridades de certificação confiáveis.",
"encryption_certificates_input": "Copie/cole aqui o seu certificado codificado em PEM.", "encryption_certificates_input": "Copie/cole aqui o seu certificado codificado em PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS obișnuit (over UDP, nume de gazdă);", "example_upstream_udp": "DNS obișnuit (over UDP, nume de gazdă);",
"example_upstream_dot": "<0>DNS-over-TLS</0> criptat;", "example_upstream_dot": "<0>DNS-over-TLS</0> criptat;",
"example_upstream_doh": "<0>DNS-over-HTTPS</0> criptat;", "example_upstream_doh": "<0>DNS-over-HTTPS</0> criptat;",
"example_upstream_doq": "<0>DNS-over-QUIC</0> criptat (experimental);", "example_upstream_doq": "criptat <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamps</0> pentru <1>DNSCrypt</1> sau rezolvatori <2>DNS-over-HTTPS</2>;", "example_upstream_sdns": "<0>DNS Stamps</0> pentru <1>DNSCrypt</1> sau rezolvatori <2>DNS-over-HTTPS</2>;",
"example_upstream_tcp": "DNS clasic (over TCP);", "example_upstream_tcp": "DNS clasic (over TCP);",
"example_upstream_tcp_hostname": "DNS obișnuit (over TCP, nume de gazdă);", "example_upstream_tcp_hostname": "DNS obișnuit (over TCP, nume de gazdă);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Dacă portul HTTPS este configurat, interfața administrator AdGuard Home va fi accesibilă prin HTTPS și va oferi de asemenea DNS-over-HTTPS în locația '/DNS-query'.", "encryption_https_desc": "Dacă portul HTTPS este configurat, interfața administrator AdGuard Home va fi accesibilă prin HTTPS și va oferi de asemenea DNS-over-HTTPS în locația '/DNS-query'.",
"encryption_dot": "Port DNS-over-TLS", "encryption_dot": "Port DNS-over-TLS",
"encryption_dot_desc": "Dacă acest port este configurat, AdGuard Home va rula un server DNS-over-TLS pe acest port.", "encryption_dot_desc": "Dacă acest port este configurat, AdGuard Home va rula un server DNS-over-TLS pe acest port.",
"encryption_doq": "Port DNS-over-QUIC (experimental)", "encryption_doq": "Portul DNS-over-QUIC",
"encryption_doq_desc": "Dacă acest port este configurat, AdGuard Home va rula un server DNS-over-QUIC pe acest port. Este experimental și este posibil să nu fie fiabil. De asemenea, nu există prea mulți clienți care să-l susțină în acest moment.", "encryption_doq_desc": "Dacă este configurat acest port, AdGuard Home va rula un server DNS-over-QUIC pe acest port.",
"encryption_certificates": "Certificate", "encryption_certificates": "Certificate",
"encryption_certificates_desc": "Pentru a utiliza criptarea, trebuie furnizate o serie de certificate SSL valabile pentru domeniul dvs.. Puteți obține un certificat gratuit pe <0>{{link}}</0> sau îl puteți cumpăra de la una din Autoritățile Certificate de încredere.", "encryption_certificates_desc": "Pentru a utiliza criptarea, trebuie furnizate o serie de certificate SSL valabile pentru domeniul dvs.. Puteți obține un certificat gratuit pe <0>{{link}}</0> sau îl puteți cumpăra de la una din Autoritățile Certificate de încredere.",
"encryption_certificates_input": "Copiați/lipiți certificatele dvs. PEM-codate aici.", "encryption_certificates_input": "Copiați/lipiți certificatele dvs. PEM-codate aici.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "обычный DNS (поверх UDP, с именем хоста);", "example_upstream_udp": "обычный DNS (поверх UDP, с именем хоста);",
"example_upstream_dot": "зашифрованный <0>DNS-over-TLS</0>;", "example_upstream_dot": "зашифрованный <0>DNS-over-TLS</0>;",
"example_upstream_doh": "зашифрованный <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "зашифрованный <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "зашифрованный <0>DNS-over-QUIC</0> (эксперементальный);", "example_upstream_doq": "зашифрован <0>DNS-over-QUIC</0>",
"example_upstream_sdns": "<0>DNS Stamps</0> для <1>DNSCrypt</1> или <2>DNS-over-HTTPS</2> серверов;", "example_upstream_sdns": "<0>DNS Stamps</0> для <1>DNSCrypt</1> или <2>DNS-over-HTTPS</2> серверов;",
"example_upstream_tcp": "обычный DNS (поверх TCP);", "example_upstream_tcp": "обычный DNS (поверх TCP);",
"example_upstream_tcp_hostname": "обычный DNS (поверх TCP, с именем хоста);", "example_upstream_tcp_hostname": "обычный DNS (поверх TCP, с именем хоста);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Если порт HTTPS настроен, веб-интерфейс администрирования AdGuard Home будет доступен через HTTPS, а также DNS-over-HTTPS сервер будет доступен по пути '/dns-query'.", "encryption_https_desc": "Если порт HTTPS настроен, веб-интерфейс администрирования AdGuard Home будет доступен через HTTPS, а также DNS-over-HTTPS сервер будет доступен по пути '/dns-query'.",
"encryption_dot": "Порт DNS-over-TLS", "encryption_dot": "Порт DNS-over-TLS",
"encryption_dot_desc": "Если этот порт настроен, AdGuard Home запустит DNS-over-TLS-сервер на этому порту.", "encryption_dot_desc": "Если этот порт настроен, AdGuard Home запустит DNS-over-TLS-сервер на этому порту.",
"encryption_doq": "Порт DNS-over-QUIC (экспериментальный)", "encryption_doq": "Порт DNS-over-QUIC",
"encryption_doq_desc": "Если этот порт настроен, AdGuard Home запустит сервер DNS-over-QUIC на этом порте. Это экспериментально и может быть ненадёжно. Кроме того, не так много клиентов поддерживает этот способ в настоящий момент.", "encryption_doq_desc": "Если этот порт настроен, AdGuard Home запустит сервер DNS-over-QUIC на этом порте.",
"encryption_certificates": "Сертификаты", "encryption_certificates": "Сертификаты",
"encryption_certificates_desc": "Для использования шифрования вам необходимо предоставить корректную цепочку SSL-сертификатов для вашего домена. Вы можете получить бесплатный сертификат на <0>{{link}}</0> или вы можете купить его у одного из доверенных Центров Сертификации.", "encryption_certificates_desc": "Для использования шифрования вам необходимо предоставить корректную цепочку SSL-сертификатов для вашего домена. Вы можете получить бесплатный сертификат на <0>{{link}}</0> или вы можете купить его у одного из доверенных Центров Сертификации.",
"encryption_certificates_input": "Скопируйте сюда сертификаты в PEM-кодировке.", "encryption_certificates_input": "Скопируйте сюда сертификаты в PEM-кодировке.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "štandardné DNS (cez UDP, hostname);", "example_upstream_udp": "štandardné DNS (cez UDP, hostname);",
"example_upstream_dot": "šifrované <0>DNS-over-TLS</0>;", "example_upstream_dot": "šifrované <0>DNS-over-TLS</0>;",
"example_upstream_doh": "šifrované <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "šifrované <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "šifrované <0>DNS-over-QUIC</0> (experimentálne);", "example_upstream_doq": "šifrované <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS pečiatky</0> pre <1>DNSCrypt</1> alebo <2>DNS-over-HTTPS</2> rezolvery;", "example_upstream_sdns": "<0>DNS pečiatky</0> pre <1>DNSCrypt</1> alebo <2>DNS-over-HTTPS</2> rezolvery;",
"example_upstream_tcp": "obyčajná DNS (cez TCP);", "example_upstream_tcp": "obyčajná DNS (cez TCP);",
"example_upstream_tcp_hostname": "štandardné DNS (cez TCP, hostname);", "example_upstream_tcp_hostname": "štandardné DNS (cez TCP, hostname);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Ak je nakonfigurovaný HTTPS port, AdGuard Home administrátorské rozhranie bude prístupné cez HTTPS a bude tiež poskytovať DNS-cez-HTTPS na '/dns-query'.", "encryption_https_desc": "Ak je nakonfigurovaný HTTPS port, AdGuard Home administrátorské rozhranie bude prístupné cez HTTPS a bude tiež poskytovať DNS-cez-HTTPS na '/dns-query'.",
"encryption_dot": "Port DNS-cez-TLS", "encryption_dot": "Port DNS-cez-TLS",
"encryption_dot_desc": "Ak je tento port nakonfigurovaný, AdGuard Home bude na tomto porte spúšťať DNS-cez-TLS server.", "encryption_dot_desc": "Ak je tento port nakonfigurovaný, AdGuard Home bude na tomto porte spúšťať DNS-cez-TLS server.",
"encryption_doq": "DNS-over-QUIC (experimentálne)", "encryption_doq": "Port DNS-cez-QUIC",
"encryption_doq_desc": "Ak je tento port nakonfigurovaný, AdGuard Home na tomto porte spustí server DNS-over-QUIC. Je to experimentálne a nemusí to byť spoľahlivé. Momentálne tiež nie je príliš veľa klientov, ktorí by ju podporovali.", "encryption_doq_desc": "Ak je tento port nakonfigurovaný, AdGuard Home na tomto porte spustí server DNS-over-QUIC. ",
"encryption_certificates": "Certifikáty", "encryption_certificates": "Certifikáty",
"encryption_certificates_desc": "Ak chcete používať šifrovanie, musíte pre svoju doménu poskytnúť platný reťazec certifikátov SSL. Certifikát môžete získať bezplatne na adrese <0>{{link}}</0> alebo si ho môžete kúpiť od jedného z dôveryhodných certifikačných orgánov.", "encryption_certificates_desc": "Ak chcete používať šifrovanie, musíte pre svoju doménu poskytnúť platný reťazec certifikátov SSL. Certifikát môžete získať bezplatne na adrese <0>{{link}}</0> alebo si ho môžete kúpiť od jedného z dôveryhodných certifikačných orgánov.",
"encryption_certificates_input": "Skopírujte alebo prilepte sem certifikáty vo formáte PEM.", "encryption_certificates_input": "Skopírujte alebo prilepte sem certifikáty vo formáte PEM.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "redni DNS (nad UDP, ime gostitelja);", "example_upstream_udp": "redni DNS (nad UDP, ime gostitelja);",
"example_upstream_dot": "šifriran <0>DNS-prek-TLS</0>;", "example_upstream_dot": "šifriran <0>DNS-prek-TLS</0>;",
"example_upstream_doh": "šifriran <0>DNS-prek-HTTPS</0>;", "example_upstream_doh": "šifriran <0>DNS-prek-HTTPS</0>;",
"example_upstream_doq": "šifriran <0>DNS-prek-QUIC</0> (eksperimentalno);", "example_upstream_doq": "šifriran <0>DNS-prek-QUIC</0>;",
"example_upstream_sdns": "lahko uporabite <0>DNS Žige</0> za reševalce <1>DNSCrypt</1> ali <2>DNS-prek-HTTPS</2>;", "example_upstream_sdns": "lahko uporabite <0>DNS Žige</0> za reševalce <1>DNSCrypt</1> ali <2>DNS-prek-HTTPS</2>;",
"example_upstream_tcp": "redni DNS (nad TCP);", "example_upstream_tcp": "redni DNS (nad TCP);",
"example_upstream_tcp_hostname": "redni DNS (nad TCP, ime gostitelja);", "example_upstream_tcp_hostname": "redni DNS (nad TCP, ime gostitelja);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Če so vrata HTTPS konfigurirana, bo skrbniški vmesnik AdGuard Home dostopen prek protokola HTTPS, prav tako pa bo zagotovil DNS-prek-HTTPS na mestu '/dns-query'.", "encryption_https_desc": "Če so vrata HTTPS konfigurirana, bo skrbniški vmesnik AdGuard Home dostopen prek protokola HTTPS, prav tako pa bo zagotovil DNS-prek-HTTPS na mestu '/dns-query'.",
"encryption_dot": "Vrata DNS-prek-TLS", "encryption_dot": "Vrata DNS-prek-TLS",
"encryption_dot_desc": "Če so ta vrata konfigurirana, bo AdGuard Home na teh vratih zagnal DNS-prek-TLS strežnika.", "encryption_dot_desc": "Če so ta vrata konfigurirana, bo AdGuard Home na teh vratih zagnal DNS-prek-TLS strežnika.",
"encryption_doq": "DNS-prek-vrat QUIC (eksperimentalno)", "encryption_doq": "DNS-prek-vrat QUIC",
"encryption_doq_desc": "Če so nastavljena ta vrata bo AdGuard Home na teh vratih zagnal strežnik DNS-prek-QUIC. To je eksperimentalno in morda ni zanesljivo. Prav tako trenutno ni preveč odjemalcev, ki to podpirajo.", "encryption_doq_desc": "Če so nastavljena ta vrata bo AdGuard Home na teh vratih zagnal strežnik DNS-prek-QUIC. ",
"encryption_certificates": "Digitalna potrdila", "encryption_certificates": "Digitalna potrdila",
"encryption_certificates_desc": "Za uporabo šifriranja morate za svojo domeno zagotoviti veljavno verigo potrdil SSL. Brezplačno digitalno potrdilo lahko dobite na <0>{{link}}</0> ali pa ga kupite pri enem od zaupanja vrednih overiteljev.\n\n", "encryption_certificates_desc": "Za uporabo šifriranja morate za svojo domeno zagotoviti veljavno verigo potrdil SSL. Brezplačno digitalno potrdilo lahko dobite na <0>{{link}}</0> ali pa ga kupite pri enem od zaupanja vrednih overiteljev.\n\n",
"encryption_certificates_input": "Tukaj kopirajte/prilepite PEM šifrirana digitalna potrdila.", "encryption_certificates_input": "Tukaj kopirajte/prilepite PEM šifrirana digitalna potrdila.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "uobičajen DNS (preko UDP, imena domaćina);", "example_upstream_udp": "uobičajen DNS (preko UDP, imena domaćina);",
"example_upstream_dot": "šifrovano <0>DNS-over-TLS</0>;", "example_upstream_dot": "šifrovano <0>DNS-over-TLS</0>;",
"example_upstream_doh": "šifrovano <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "šifrovano <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "šifrovano <0>DNS-over-QUIC</0> (eksperimentalno);", "example_upstream_doq": "šifrovano <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS brojeve</0> za <1>DNSCrypt</1> ili <2>DNS-over-HTTPS</2> razrešivače;", "example_upstream_sdns": "<0>DNS brojeve</0> za <1>DNSCrypt</1> ili <2>DNS-over-HTTPS</2> razrešivače;",
"example_upstream_tcp": "uobičajeni DNS (preko TCP);", "example_upstream_tcp": "uobičajeni DNS (preko TCP);",
"example_upstream_tcp_hostname": "uobičajen DNS (preko TCP, imena domaćina);", "example_upstream_tcp_hostname": "uobičajen DNS (preko TCP, imena domaćina);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Ako je HTTPS port konfigurisan, AdGuard Home administratorskom okruženju će se moći pristupati preko HTTPS, a to će takođe omogućiti DNS-over-HTTPS na '/dns-query' lokaciji.", "encryption_https_desc": "Ako je HTTPS port konfigurisan, AdGuard Home administratorskom okruženju će se moći pristupati preko HTTPS, a to će takođe omogućiti DNS-over-HTTPS na '/dns-query' lokaciji.",
"encryption_dot": "DNS-over-TLS port", "encryption_dot": "DNS-over-TLS port",
"encryption_dot_desc": "Ako je ovaj port konfigurisan, AdGuard Home će pokretati DNS-over-TLS server na ovom portu.", "encryption_dot_desc": "Ako je ovaj port konfigurisan, AdGuard Home će pokretati DNS-over-TLS server na ovom portu.",
"encryption_doq": "DNS-over-QUIC port (eksperimentalno)", "encryption_doq": "DNS-over-QUIC port",
"encryption_doq_desc": "Ako je ovaj port konfigurisan, AdGuard Home će pokrenuti DNS-over-QUIC server na tom portu. To je eksperiment i možda neće biti stabilno. Takođe, u ovom trenutku ne postoji puno klijenata koji ovo podržavaju.", "encryption_doq_desc": "Ako je ovaj port konfigurisan, AdGuard Home će pokrenuti DNS-over-QUIC server na tom portu.",
"encryption_certificates": "Sertifikati", "encryption_certificates": "Sertifikati",
"encryption_certificates_desc": "Da biste koristili šifrovanje, morate obezbediti važeći lanac SSL sertifikata za vaš domen. Besplatan sertifikat možete nabaviti na <0>{{link}}</0> ili ga možete kupiti od nekog od pouzdanih izdavalaca sertifikata.", "encryption_certificates_desc": "Da biste koristili šifrovanje, morate obezbediti važeći lanac SSL sertifikata za vaš domen. Besplatan sertifikat možete nabaviti na <0>{{link}}</0> ili ga možete kupiti od nekog od pouzdanih izdavalaca sertifikata.",
"encryption_certificates_input": "Kopirajte/nalepite vaše PEM-kodirane sertifikate ovde.", "encryption_certificates_input": "Kopirajte/nalepite vaše PEM-kodirane sertifikate ovde.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "vanlig DNS (över UDP, värdnamn);", "example_upstream_udp": "vanlig DNS (över UDP, värdnamn);",
"example_upstream_dot": "krypterat <0>DNS-over-TLS</0>", "example_upstream_dot": "krypterat <0>DNS-over-TLS</0>",
"example_upstream_doh": "krypterat <0>DNS-over-HTTPS</0>", "example_upstream_doh": "krypterat <0>DNS-over-HTTPS</0>",
"example_upstream_doq": "krypterat <0>DNS-over-QUIC</0> (experimentell);", "example_upstream_doq": "krypterat <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "Du kan använda <0>DNS-stamps</0> för <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-resolvers", "example_upstream_sdns": "Du kan använda <0>DNS-stamps</0> för <1>DNSCrypt</1> eller <2>DNS-over-HTTPS</2>-resolvers",
"example_upstream_tcp": "vanlig DNS (över UDP)", "example_upstream_tcp": "vanlig DNS (över UDP)",
"example_upstream_tcp_hostname": "vanlig DNS (över TCP, värdnamn);", "example_upstream_tcp_hostname": "vanlig DNS (över TCP, värdnamn);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Om en HTTPS-port är inställd kommer gränssnittet till AdGuard Home administrering att kunna nås via HTTPS och kommer också att erbjuda DNS-over-HTTPS på '/dns-query' plats.", "encryption_https_desc": "Om en HTTPS-port är inställd kommer gränssnittet till AdGuard Home administrering att kunna nås via HTTPS och kommer också att erbjuda DNS-over-HTTPS på '/dns-query' plats.",
"encryption_dot": "DNS-över-TLS port", "encryption_dot": "DNS-över-TLS port",
"encryption_dot_desc": "Om den här porten ställs in kommer AdGuard Home att använda DNS-over-TLS-server på porten.", "encryption_dot_desc": "Om den här porten ställs in kommer AdGuard Home att använda DNS-over-TLS-server på porten.",
"encryption_doq": "DNS-over-QUIC port (experimentell)", "encryption_doq": "DNS-over-QUIC port",
"encryption_doq_desc": "Om denna port är konfigurerad kommer AdGuard Home att köra en DNS-over-QUIC-server på denna port. Det är experimentellt och kanske inte är tillförlitligt. Dessutom finns det inte så många klienter som stödjer det för tillfället.", "encryption_doq_desc": "Om denna port är konfigurerad kommer AdGuard Home att köra en DNS-over-QUIC-server på denna port. ",
"encryption_certificates": "Certifikat", "encryption_certificates": "Certifikat",
"encryption_certificates_desc": "För att använda kryptering måste du ange ett giltigt SSL-certifikat för din domän. Du kan skaffa ett certifikat gratis på <0>{{link}}</0> eller köpa ett från någon av de godkända certifikatutfärdare.", "encryption_certificates_desc": "För att använda kryptering måste du ange ett giltigt SSL-certifikat för din domän. Du kan skaffa ett certifikat gratis på <0>{{link}}</0> eller köpa ett från någon av de godkända certifikatutfärdare.",
"encryption_certificates_input": "Kopiera/klistra in dina PEM-kodade certifikat här.", "encryption_certificates_input": "Kopiera/klistra in dina PEM-kodade certifikat här.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "normal DNS (UDP üzerinden, ana makine adı);", "example_upstream_udp": "normal DNS (UDP üzerinden, ana makine adı);",
"example_upstream_dot": "şifrelenmiş <0>DNS-over-TLS</0>;", "example_upstream_dot": "şifrelenmiş <0>DNS-over-TLS</0>;",
"example_upstream_doh": "şifrelenmiş <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "şifrelenmiş <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "şifrelenmiş <0>DNS-over-QUIC</0> (deneysel);", "example_upstream_doq": "şifrelenmiş <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<1>DNSCrypt</1> veya <2>DNS-over-HTTPS</2> çözümleyicileri için <0>DNS Damgaları</0>;", "example_upstream_sdns": "<1>DNSCrypt</1> veya <2>DNS-over-HTTPS</2> çözümleyicileri için <0>DNS Damgaları</0>;",
"example_upstream_tcp": "normal DNS (TCP üzerinden);", "example_upstream_tcp": "normal DNS (TCP üzerinden);",
"example_upstream_tcp_hostname": "normal DNS (TCP üzerinden, ana makine adı);", "example_upstream_tcp_hostname": "normal DNS (TCP üzerinden, ana makine adı);",
@ -369,8 +369,8 @@
"encryption_https_desc": "HTTPS bağlantı noktası yapılandırılırsa, AdGuard Home yönetici arayüzüne HTTPS aracılığıyla erişilebilir olacak ve ayrıca '/dns-query' üzerinden DNS-over-HTTPS bağlantısı sağlayacaktır.", "encryption_https_desc": "HTTPS bağlantı noktası yapılandırılırsa, AdGuard Home yönetici arayüzüne HTTPS aracılığıyla erişilebilir olacak ve ayrıca '/dns-query' üzerinden DNS-over-HTTPS bağlantısı sağlayacaktır.",
"encryption_dot": "DNS-over-TLS bağlantı noktası", "encryption_dot": "DNS-over-TLS bağlantı noktası",
"encryption_dot_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-TLS sunucusunu bu bağlantı noktası üzerinden çalıştıracaktır.", "encryption_dot_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-TLS sunucusunu bu bağlantı noktası üzerinden çalıştıracaktır.",
"encryption_doq": "DNS-over-QUIC bağlantı noktası (deneysel)", "encryption_doq": "DNS-over-QUIC bağlantı noktası",
"encryption_doq_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, DNS-over-QUIC sunucusunu bu bağlantı noktası üzerinden çalıştıracaktır. Bu özellik deneme aşamasındadır ve güvenilir olmayabilir. Ayrıca, şu anda bu özelliği destekleyen çok fazla istemci yok.", "encryption_doq_desc": "Bu bağlantı noktası yapılandırılırsa, AdGuard Home, bu bağlantı noktasında bir DNS-over-QUIC sunucusu çalıştıracaktır.",
"encryption_certificates": "Sertifikalar", "encryption_certificates": "Sertifikalar",
"encryption_certificates_desc": "Şifrelemeyi kullanmak için alan adınıza geçerli bir SSL sertifika zinciri sağlamanız gerekir. <0>{{link}}</0> adresinden ücretsiz bir sertifika alabilir veya güvenilir Sertifika Yetkililerinden satın alabilirsiniz.", "encryption_certificates_desc": "Şifrelemeyi kullanmak için alan adınıza geçerli bir SSL sertifika zinciri sağlamanız gerekir. <0>{{link}}</0> adresinden ücretsiz bir sertifika alabilir veya güvenilir Sertifika Yetkililerinden satın alabilirsiniz.",
"encryption_certificates_input": "PEM biçimindeki sertifikalarınızı kopyalayıp buraya yapıştırın.", "encryption_certificates_input": "PEM biçimindeki sertifikalarınızı kopyalayıp buraya yapıştırın.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "звичайний DNS (поверх UDP, з назвою вузла);", "example_upstream_udp": "звичайний DNS (поверх UDP, з назвою вузла);",
"example_upstream_dot": "зашифрований <0>DNS-over-TLS</0>;", "example_upstream_dot": "зашифрований <0>DNS-over-TLS</0>;",
"example_upstream_doh": "зашифрований <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "зашифрований <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "зашифрований <0>DNS-over-QUIC</0> (експериментальний);", "example_upstream_doq": "зашифрований <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "<0>DNS Stamps</0> для <1>DNSCrypt-</1> або <2>DNS-over-HTTPS-</2>вирішувачів;", "example_upstream_sdns": "<0>DNS Stamps</0> для <1>DNSCrypt-</1> або <2>DNS-over-HTTPS-</2>вирішувачів;",
"example_upstream_tcp": "звичайний DNS (через TCP);", "example_upstream_tcp": "звичайний DNS (через TCP);",
"example_upstream_tcp_hostname": "звичайний DNS (поверх TCP, з назвою вузла);", "example_upstream_tcp_hostname": "звичайний DNS (поверх TCP, з назвою вузла);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Якщо HTTPS-порт налаштовано, інтерфейс адміністратора AdGuard Home буде доступний через HTTPS, а також DNS-over-HTTPS-сервер буде доступний за адресою /dns-query.", "encryption_https_desc": "Якщо HTTPS-порт налаштовано, інтерфейс адміністратора AdGuard Home буде доступний через HTTPS, а також DNS-over-HTTPS-сервер буде доступний за адресою /dns-query.",
"encryption_dot": "Порт DNS-over-TLS", "encryption_dot": "Порт DNS-over-TLS",
"encryption_dot_desc": "Якщо цей порт налаштовано, AdGuard Home запустить на цьому порту сервер DNS-over-TLS.", "encryption_dot_desc": "Якщо цей порт налаштовано, AdGuard Home запустить на цьому порту сервер DNS-over-TLS.",
"encryption_doq": "Порт DNS-over-QUIC (експериментальний)", "encryption_doq": "Порт DNS-over-QUIC",
"encryption_doq_desc": "Якщо цей порт налаштовано, AdGuard Home запустить на цьому порту сервер DNS-over-QUIC. Це експериментально і може бути ненадійним. Крім того, зараз не так багато клієнтів, які це підтримують.", "encryption_doq_desc": "Якщо цей порт налаштовано, AdGuard Home запустить на ньому сервер DNS-over-QUIC.",
"encryption_certificates": "Сертифікати", "encryption_certificates": "Сертифікати",
"encryption_certificates_desc": "Для використання шифрування потрібно надати дійсний ланцюжок сертифікатів SSL для вашого домену. Ви можете отримати безплатний сертифікат на <0>{{link}}</0> або придбати його в одному з надійних Центрів Сертифікації.", "encryption_certificates_desc": "Для використання шифрування потрібно надати дійсний ланцюжок сертифікатів SSL для вашого домену. Ви можете отримати безплатний сертифікат на <0>{{link}}</0> або придбати його в одному з надійних Центрів Сертифікації.",
"encryption_certificates_input": "Скопіюйте/вставте сюди свої кодовані PEM сертифікати.", "encryption_certificates_input": "Скопіюйте/вставте сюди свої кодовані PEM сертифікати.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "DNS thông thường (qua UDP, tên máy chủ);", "example_upstream_udp": "DNS thông thường (qua UDP, tên máy chủ);",
"example_upstream_dot": "được mã hoá <0>DNS-over-TLS</0>;", "example_upstream_dot": "được mã hoá <0>DNS-over-TLS</0>;",
"example_upstream_doh": "được mã hoá <0>DNS-over-HTTPS</0>;", "example_upstream_doh": "được mã hoá <0>DNS-over-HTTPS</0>;",
"example_upstream_doq": "được mã hoá <0>DNS-over-QUIC</0> (thử nghiệm);", "example_upstream_doq": "được mã hoá <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "bạn có thể sử dụng <0>DNS Stamps</0> for <1>DNSCrypt</1> hoặc <2>DNS-over-HTTPS</2> ", "example_upstream_sdns": "bạn có thể sử dụng <0>DNS Stamps</0> for <1>DNSCrypt</1> hoặc <2>DNS-over-HTTPS</2> ",
"example_upstream_tcp": "DNS thông thường(dùng TCP);", "example_upstream_tcp": "DNS thông thường(dùng TCP);",
"example_upstream_tcp_hostname": "DNS thông thường (qua TCP, tên máy chủ);", "example_upstream_tcp_hostname": "DNS thông thường (qua TCP, tên máy chủ);",
@ -369,8 +369,8 @@
"encryption_https_desc": "Nếu cổng HTTPS được định cấu hình, giao diện quản trị viên AdGuard Home sẽ có thể truy cập thông qua HTTPS và nó cũng sẽ cung cấp DNS-over-HTTPS trên vị trí '/dns-query'.", "encryption_https_desc": "Nếu cổng HTTPS được định cấu hình, giao diện quản trị viên AdGuard Home sẽ có thể truy cập thông qua HTTPS và nó cũng sẽ cung cấp DNS-over-HTTPS trên vị trí '/dns-query'.",
"encryption_dot": "Cổng DNS-over-TLS", "encryption_dot": "Cổng DNS-over-TLS",
"encryption_dot_desc": "Nếu cổng này được định cấu hình, AdGuard Home sẽ chạy máy chủ DNS-over-TLS trên cổng này.", "encryption_dot_desc": "Nếu cổng này được định cấu hình, AdGuard Home sẽ chạy máy chủ DNS-over-TLS trên cổng này.",
"encryption_doq": "Cổng DNS-over-QUIC (thử nghiệm)", "encryption_doq": "Cổng DNS-over-QUIC",
"encryption_doq_desc": "Nếu cổng này được định cấu hình, AdGuard Home sẽ chạy máy chủ DNS qua QUIC trên cổng này. Đó là thử nghiệm và có thể không đáng tin cậy. Ngoài ra, không có quá nhiều khách hàng hỗ trợ nó vào lúc này.", "encryption_doq_desc": "Nếu cổng này được định cấu hình, AdGuard Home sẽ chạy máy chủ DNS qua QUIC trên cổng này. ",
"encryption_certificates": "Chứng chỉ", "encryption_certificates": "Chứng chỉ",
"encryption_certificates_desc": "Để sử dụng mã hóa, bạn cần cung cấp chuỗi chứng chỉ SSL hợp lệ cho miền của mình. Bạn có thể nhận chứng chỉ miễn phí trên <0>{{link}}</0> hoặc bạn có thể mua chứng chỉ từ một trong các Cơ Quan Chứng Nhận tin cậy.", "encryption_certificates_desc": "Để sử dụng mã hóa, bạn cần cung cấp chuỗi chứng chỉ SSL hợp lệ cho miền của mình. Bạn có thể nhận chứng chỉ miễn phí trên <0>{{link}}</0> hoặc bạn có thể mua chứng chỉ từ một trong các Cơ Quan Chứng Nhận tin cậy.",
"encryption_certificates_input": "Sao chép/dán chứng chỉ được mã hóa PEM của bạn tại đây.", "encryption_certificates_input": "Sao chép/dán chứng chỉ được mã hóa PEM của bạn tại đây.",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "常规 DNS通过 UDP、主机名", "example_upstream_udp": "常规 DNS通过 UDP、主机名",
"example_upstream_dot": "加密 <0>DNS-over-TLS</0>", "example_upstream_dot": "加密 <0>DNS-over-TLS</0>",
"example_upstream_doh": "加密 <0>DNS-over-HTTPS</0>", "example_upstream_doh": "加密 <0>DNS-over-HTTPS</0>",
"example_upstream_doq": "加密 <0>DNS-over-QUIC</0>(实验性的);", "example_upstream_doq": "加密 <0>DNS-over-QUIC</0>",
"example_upstream_sdns": "<1>DNSCrypt</1> 的 <0>DNS Stamps</0> 或者 <2>DNS-over-HTTPS</2> 解析器;", "example_upstream_sdns": "<1>DNSCrypt</1> 的 <0>DNS Stamps</0> 或者 <2>DNS-over-HTTPS</2> 解析器;",
"example_upstream_tcp": "常规 DNS基于 TCP ", "example_upstream_tcp": "常规 DNS基于 TCP ",
"example_upstream_tcp_hostname": "常规 DNS通过 TCP、主机名", "example_upstream_tcp_hostname": "常规 DNS通过 TCP、主机名",
@ -369,8 +369,8 @@
"encryption_https_desc": "如果配置了 HTTPS 端口AdGuard Home 管理界面将可以通过 HTTPS 访问,它还将在在 '/dns-query' 位置提供 DNS-over-HTTPS 。", "encryption_https_desc": "如果配置了 HTTPS 端口AdGuard Home 管理界面将可以通过 HTTPS 访问,它还将在在 '/dns-query' 位置提供 DNS-over-HTTPS 。",
"encryption_dot": "DNS-over-TLS 端口", "encryption_dot": "DNS-over-TLS 端口",
"encryption_dot_desc": "如果配置了此端口AdGuard Home 将在此端口上运行一个 DNS-over-TLS 服务器。", "encryption_dot_desc": "如果配置了此端口AdGuard Home 将在此端口上运行一个 DNS-over-TLS 服务器。",
"encryption_doq": "DNS-over-QUIC 端口(实验性的)", "encryption_doq": "DNS-over-QUIC 端口",
"encryption_doq_desc": "如果配置了此端口AdGuard Home将在此端口上运行一个DNS-over-QUIC服务器。这是实验性的,可能不可靠。而且,支持此特性的客户端并不多。", "encryption_doq_desc": "如果配置了此端口AdGuard Home 将在此端口上运行一个 DNS-over-QUIC 服务器。",
"encryption_certificates": "证书", "encryption_certificates": "证书",
"encryption_certificates_desc": "为了使用加密,您需要为域提供有效的 SSL 证书链。您可以在 <0>{{link}}</0> 上获得免费证书,也可以从受信任的证书颁发机构购买证书。", "encryption_certificates_desc": "为了使用加密,您需要为域提供有效的 SSL 证书链。您可以在 <0>{{link}}</0> 上获得免费证书,也可以从受信任的证书颁发机构购买证书。",
"encryption_certificates_input": "将您以 PEM 格式编码的证书复制粘贴到此处。", "encryption_certificates_input": "将您以 PEM 格式编码的证书复制粘贴到此处。",

View File

@ -213,7 +213,7 @@
"example_upstream_udp": "常規 DNS透過 UDP主機名稱", "example_upstream_udp": "常規 DNS透過 UDP主機名稱",
"example_upstream_dot": "加密的 <0>DNS-over-TLS</0>", "example_upstream_dot": "加密的 <0>DNS-over-TLS</0>",
"example_upstream_doh": "加密的 <0>DNS-over-HTTPS</0>", "example_upstream_doh": "加密的 <0>DNS-over-HTTPS</0>",
"example_upstream_doq": "加密的 <0>DNS-over-QUIC</0>(實驗性的);", "example_upstream_doq": "加密的 <0>DNS-over-QUIC</0>;",
"example_upstream_sdns": "關於 <1>DNSCrypt</1> 或 <2>DNS-over-HTTPS</2> 解析器之 <0>DNS 戳記</0>", "example_upstream_sdns": "關於 <1>DNSCrypt</1> 或 <2>DNS-over-HTTPS</2> 解析器之 <0>DNS 戳記</0>",
"example_upstream_tcp": "常規 DNS透過 TCP", "example_upstream_tcp": "常規 DNS透過 TCP",
"example_upstream_tcp_hostname": "常規 DNS透過 TCP主機名稱", "example_upstream_tcp_hostname": "常規 DNS透過 TCP主機名稱",
@ -369,8 +369,8 @@
"encryption_https_desc": "如果 HTTPS 連接埠被配置AdGuard Home 管理員介面透過 HTTPS 將為可存取的,且它也將於 '/dns-query' 位置上提供 DNS-over-HTTPS。", "encryption_https_desc": "如果 HTTPS 連接埠被配置AdGuard Home 管理員介面透過 HTTPS 將為可存取的,且它也將於 '/dns-query' 位置上提供 DNS-over-HTTPS。",
"encryption_dot": "DNS-over-TLS 連接埠", "encryption_dot": "DNS-over-TLS 連接埠",
"encryption_dot_desc": "如果該連接埠被配置AdGuard Home 將於此連接埠上運行 DNS-over-TLS 伺服器。", "encryption_dot_desc": "如果該連接埠被配置AdGuard Home 將於此連接埠上運行 DNS-over-TLS 伺服器。",
"encryption_doq": "DNS-over-QUIC 連接埠(實驗性的)", "encryption_doq": "DNS-over-QUIC 連接埠",
"encryption_doq_desc": "如果此連接埠被配置AdGuard Home 將於此連接埠上運行 DNS-over-QUIC 伺服器。它是實驗性的並可能為不可靠的。再者,此刻沒有太多支援它的用戶端。", "encryption_doq_desc": "如果此連接埠被配置AdGuard Home 將於此連接埠上運行 DNS-over-QUIC 伺服器。",
"encryption_certificates": "憑證", "encryption_certificates": "憑證",
"encryption_certificates_desc": "為了使用加密您需要提供有效的安全通訊端層SSL憑證鏈結供您的網域。於 <0>{{link}}</0> 上您可取得免費的憑證或您可從受信任的憑證授權單位之一購買它。", "encryption_certificates_desc": "為了使用加密您需要提供有效的安全通訊端層SSL憑證鏈結供您的網域。於 <0>{{link}}</0> 上您可取得免費的憑證或您可從受信任的憑證授權單位之一購買它。",
"encryption_certificates_input": "於此複製/貼上您的隱私增強郵件編碼之PEM-encoded憑證。", "encryption_certificates_input": "於此複製/貼上您的隱私增強郵件編碼之PEM-encoded憑證。",

View File

@ -24,6 +24,7 @@ export const getTlsStatus = () => async (dispatch) => {
export const setTlsConfigRequest = createAction('SET_TLS_CONFIG_REQUEST'); export const setTlsConfigRequest = createAction('SET_TLS_CONFIG_REQUEST');
export const setTlsConfigFailure = createAction('SET_TLS_CONFIG_FAILURE'); export const setTlsConfigFailure = createAction('SET_TLS_CONFIG_FAILURE');
export const setTlsConfigSuccess = createAction('SET_TLS_CONFIG_SUCCESS'); export const setTlsConfigSuccess = createAction('SET_TLS_CONFIG_SUCCESS');
export const dnsStatusSuccess = createAction('DNS_STATUS_SUCCESS');
export const setTlsConfig = (config) => async (dispatch, getState) => { export const setTlsConfig = (config) => async (dispatch, getState) => {
dispatch(setTlsConfigRequest()); dispatch(setTlsConfigRequest());
@ -39,6 +40,12 @@ export const setTlsConfig = (config) => async (dispatch, getState) => {
const response = await apiClient.setTlsConfig(values); const response = await apiClient.setTlsConfig(values);
response.certificate_chain = atob(response.certificate_chain); response.certificate_chain = atob(response.certificate_chain);
response.private_key = atob(response.private_key); response.private_key = atob(response.private_key);
const dnsStatus = await apiClient.getGlobalStatus();
if (dnsStatus) {
dispatch(dnsStatusSuccess(dnsStatus));
}
dispatch(setTlsConfigSuccess(response)); dispatch(setTlsConfigSuccess(response));
dispatch(addSuccessToast('encryption_config_saved')); dispatch(addSuccessToast('encryption_config_saved'));
redirectToCurrentProtocol(response, httpPort); redirectToCurrentProtocol(response, httpPort);

View File

@ -29,6 +29,8 @@ class Table extends Component {
Header: this.props.t('actions_table_header'), Header: this.props.t('actions_table_header'),
accessor: 'actions', accessor: 'actions',
maxWidth: 100, maxWidth: 100,
sortable: false,
resizable: false,
Cell: (value) => ( Cell: (value) => (
<div className="logs__row logs__row--center"> <div className="logs__row logs__row--center">
<button <button

View File

@ -36,6 +36,7 @@ class Table extends Component {
Cell: this.renderCheckbox, Cell: this.renderCheckbox,
width: 90, width: 90,
className: 'text-center', className: 'text-center',
resizable: false,
}, },
{ {
Header: <Trans>name_table_header</Trans>, Header: <Trans>name_table_header</Trans>,
@ -77,10 +78,11 @@ class Table extends Component {
}, },
{ {
Header: <Trans>actions_table_header</Trans>, Header: <Trans>actions_table_header</Trans>,
accessor: 'url', accessor: 'actions',
className: 'text-center', className: 'text-center',
width: 100, width: 100,
sortable: false, sortable: false,
resizable: false,
Cell: (row) => { Cell: (row) => {
const { value } = row; const { value } = row;
const { t, toggleFilteringModal, handleDelete } = this.props; const { t, toggleFilteringModal, handleDelete } = this.props;

View File

@ -338,10 +338,19 @@
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.logs__row--icons {
flex-wrap: wrap;
}
.logs__table .logs__row { .logs__table .logs__row {
border-bottom: 2px solid var(--gray-216); border-bottom: 2px solid var(--gray-216);
} }
.logs__tag {
text-overflow: ellipsis;
overflow: hidden;
}
/* QUERY_STATUS_COLORS */ /* QUERY_STATUS_COLORS */
.logs__row--blue { .logs__row--blue {
background-color: var(--blue); background-color: var(--blue);

View File

@ -193,7 +193,7 @@ class ClientsTable extends Component {
<div className="logs__row o-hidden"> <div className="logs__row o-hidden">
<span className="logs__text"> <span className="logs__text">
{value.map((tag) => ( {value.map((tag) => (
<div key={tag} title={tag} className="small"> <div key={tag} title={tag} className="logs__tag small">
{tag} {tag}
</div> </div>
))} ))}
@ -225,6 +225,8 @@ class ClientsTable extends Component {
Header: this.props.t('actions_table_header'), Header: this.props.t('actions_table_header'),
accessor: 'actions', accessor: 'actions',
maxWidth: 100, maxWidth: 100,
sortable: false,
resizable: false,
Cell: (row) => { Cell: (row) => {
const clientName = row.original.name; const clientName = row.original.name;
const { const {

View File

@ -70,6 +70,8 @@ const StaticLeases = ({
Header: <Trans>actions_table_header</Trans>, Header: <Trans>actions_table_header</Trans>,
accessor: 'actions', accessor: 'actions',
maxWidth: 150, maxWidth: 150,
sortable: false,
resizable: false,
// eslint-disable-next-line react/display-name // eslint-disable-next-line react/display-name
Cell: (row) => { Cell: (row) => {
const { ip, mac, hostname } = row.original; const { ip, mac, hostname } = row.original;

View File

@ -113,6 +113,7 @@
width: 30px; width: 30px;
height: 30px; height: 30px;
background-color: transparent; background-color: transparent;
overflow: hidden;
} }
.btn-icon--green { .btn-icon--green {

10
go.mod
View File

@ -3,7 +3,7 @@ module github.com/AdguardTeam/AdGuardHome
go 1.17 go 1.17
require ( require (
github.com/AdguardTeam/dnsproxy v0.43.0 github.com/AdguardTeam/dnsproxy v0.43.1
github.com/AdguardTeam/golibs v0.10.8 github.com/AdguardTeam/golibs v0.10.8
github.com/AdguardTeam/urlfilter v0.16.0 github.com/AdguardTeam/urlfilter v0.16.0
github.com/NYTimes/gziphandler v1.1.1 github.com/NYTimes/gziphandler v1.1.1
@ -15,6 +15,7 @@ require (
github.com/google/go-cmp v0.5.7 github.com/google/go-cmp v0.5.7
github.com/google/gopacket v1.1.19 github.com/google/gopacket v1.1.19
github.com/google/renameio v1.0.1 github.com/google/renameio v1.0.1
github.com/google/uuid v1.3.0
github.com/insomniacslk/dhcp v0.0.0-20220405050111-12fbdcb11b41 github.com/insomniacslk/dhcp v0.0.0-20220405050111-12fbdcb11b41
github.com/kardianos/service v1.2.1 github.com/kardianos/service v1.2.1
github.com/lucas-clemente/quic-go v0.27.1 github.com/lucas-clemente/quic-go v0.27.1
@ -23,8 +24,7 @@ require (
// TODO(a.garipov): This package is deprecated; find a new one or use // TODO(a.garipov): This package is deprecated; find a new one or use
// our own code for that. // our own code for that.
github.com/mdlayher/raw v0.0.0-20211126142749-4eae47f3d54b github.com/mdlayher/raw v0.0.0-20211126142749-4eae47f3d54b
github.com/miekg/dns v1.1.48 github.com/miekg/dns v1.1.49
github.com/satori/go.uuid v1.2.0
github.com/stretchr/testify v1.7.0 github.com/stretchr/testify v1.7.0
github.com/ti-mo/netfilter v0.4.0 github.com/ti-mo/netfilter v0.4.0
go.etcd.io/bbolt v1.3.6 go.etcd.io/bbolt v1.3.6
@ -45,7 +45,6 @@ require (
github.com/cheekybits/genny v1.0.0 // indirect github.com/cheekybits/genny v1.0.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/josharian/native v1.0.0 // indirect github.com/josharian/native v1.0.0 // indirect
github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect
github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect
@ -66,6 +65,3 @@ require (
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
) )
// TODO(a.garipov): Return to the main repo once miekg/dns#1359 is merged.
replace github.com/miekg/dns => github.com/ainar-g/dns v1.1.49-0.20220411125901-8a162bbc18d8

17
go.sum
View File

@ -7,8 +7,8 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
github.com/AdguardTeam/dnsproxy v0.43.0 h1:K082nx37DaNqSyT3kDtAfgBACNWc+ZDI1Yr/kGppu1k= github.com/AdguardTeam/dnsproxy v0.43.1 h1:E777KfQAi+VurOoWEdGQ5iqjSOOAzzbTfLOEzj8heCs=
github.com/AdguardTeam/dnsproxy v0.43.0/go.mod h1:JUGTm5dmlll47JltztsT0N//pVJjdg6zu0SNeUeaA7g= github.com/AdguardTeam/dnsproxy v0.43.1/go.mod h1:JUGTm5dmlll47JltztsT0N//pVJjdg6zu0SNeUeaA7g=
github.com/AdguardTeam/golibs v0.4.0/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4= github.com/AdguardTeam/golibs v0.4.0/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4=
github.com/AdguardTeam/golibs v0.4.2/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4= github.com/AdguardTeam/golibs v0.4.2/go.mod h1:skKsDKIBB7kkFflLJBpfGX+G8QFTx0WKUzB6TIgtUj4=
github.com/AdguardTeam/golibs v0.10.4/go.mod h1:rSfQRGHIdgfxriDDNgNJ7HmE5zRoURq8R+VdR81Zuzw= github.com/AdguardTeam/golibs v0.10.4/go.mod h1:rSfQRGHIdgfxriDDNgNJ7HmE5zRoURq8R+VdR81Zuzw=
@ -28,8 +28,6 @@ github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmH
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 h1:52m0LGchQBBVqJRyYYufQuIbVqRawmubW3OFGqK1ekw= github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635 h1:52m0LGchQBBVqJRyYYufQuIbVqRawmubW3OFGqK1ekw=
github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635/go.mod h1:lmLxL+FV291OopO93Bwf9fQLQeLyt33VJRUg5VJ30us= github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635/go.mod h1:lmLxL+FV291OopO93Bwf9fQLQeLyt33VJRUg5VJ30us=
github.com/ainar-g/dns v1.1.49-0.20220411125901-8a162bbc18d8 h1:Hp2waLwK989ui3bDkFpedlIHfyWdZ77gynvd+GPEqXY=
github.com/ainar-g/dns v1.1.49-0.20220411125901-8a162bbc18d8/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
github.com/ameshkov/dnscrypt/v2 v2.2.3 h1:X9UP5AHtwp46Ji+sGFfF/1Is6OPI/SjxLqhKpx0P5UI= github.com/ameshkov/dnscrypt/v2 v2.2.3 h1:X9UP5AHtwp46Ji+sGFfF/1Is6OPI/SjxLqhKpx0P5UI=
github.com/ameshkov/dnscrypt/v2 v2.2.3/go.mod h1:xJB9cE1/GF+NB6EEQqRlkoa4bjcV2w7VYn1G+zVq7Bs= github.com/ameshkov/dnscrypt/v2 v2.2.3/go.mod h1:xJB9cE1/GF+NB6EEQqRlkoa4bjcV2w7VYn1G+zVq7Bs=
github.com/ameshkov/dnsstamps v1.0.1/go.mod h1:Ii3eUu73dx4Vw5O4wjzmT5+lkCwovjzaEZZ4gKyIH5A= github.com/ameshkov/dnsstamps v1.0.1/go.mod h1:Ii3eUu73dx4Vw5O4wjzmT5+lkCwovjzaEZZ4gKyIH5A=
@ -176,6 +174,11 @@ github.com/mdlayher/socket v0.2.1/go.mod h1:QLlNPkFR88mRUNQIzRBMfXxwKal8H7u1h3bL
github.com/mdlayher/socket v0.2.3 h1:XZA2X2TjdOwNoNPVPclRCURoX/hokBY8nkTmRZFEheM= github.com/mdlayher/socket v0.2.3 h1:XZA2X2TjdOwNoNPVPclRCURoX/hokBY8nkTmRZFEheM=
github.com/mdlayher/socket v0.2.3/go.mod h1:bz12/FozYNH/VbvC3q7TRIK/Y6dH1kCKsXaUeXi/FmY= github.com/mdlayher/socket v0.2.3/go.mod h1:bz12/FozYNH/VbvC3q7TRIK/Y6dH1kCKsXaUeXi/FmY=
github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
github.com/miekg/dns v1.1.40/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
github.com/miekg/dns v1.1.44/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
github.com/miekg/dns v1.1.49 h1:qe0mQU3Z/XpFeE+AEBo2rqaS1IPBJ3anmqZ4XiZJVG8=
github.com/miekg/dns v1.1.49/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo=
@ -209,8 +212,6 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:
github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/shirou/gopsutil/v3 v3.21.8 h1:nKct+uP0TV8DjjNiHanKf8SAuub+GNsbrOtM9Nl9biA= github.com/shirou/gopsutil/v3 v3.21.8 h1:nKct+uP0TV8DjjNiHanKf8SAuub+GNsbrOtM9Nl9biA=
github.com/shirou/gopsutil/v3 v3.21.8/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ= github.com/shirou/gopsutil/v3 v3.21.8/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ=
@ -307,6 +308,7 @@ golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
@ -356,6 +358,7 @@ golang.org/x/sys v0.0.0-20190606122018-79a91cf218c4/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -372,6 +375,7 @@ golang.org/x/sys v0.0.0-20201017003518-b09fb700fbb7/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -410,6 +414,7 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=

View File

@ -0,0 +1,59 @@
package aghalg
import (
"bytes"
"encoding/json"
"fmt"
)
// NullBool is a nullable boolean. Use these in JSON requests and responses
// instead of pointers to bool.
type NullBool uint8
// NullBool values
const (
NBNull NullBool = iota
NBTrue
NBFalse
)
// String implements the fmt.Stringer interface for NullBool.
func (nb NullBool) String() (s string) {
switch nb {
case NBNull:
return "null"
case NBTrue:
return "true"
case NBFalse:
return "false"
}
return fmt.Sprintf("!invalid NullBool %d", uint8(nb))
}
// BoolToNullBool converts a bool into a NullBool.
func BoolToNullBool(cond bool) (nb NullBool) {
if cond {
return NBTrue
}
return NBFalse
}
// type check
var _ json.Unmarshaler = (*NullBool)(nil)
// UnmarshalJSON implements the json.Unmarshaler interface for *NullBool.
func (nb *NullBool) UnmarshalJSON(b []byte) (err error) {
if len(b) == 0 || bytes.Equal(b, []byte("null")) {
*nb = NBNull
} else if bytes.Equal(b, []byte("true")) {
*nb = NBTrue
} else if bytes.Equal(b, []byte("false")) {
*nb = NBFalse
} else {
return fmt.Errorf("unmarshalling json data into aghalg.NullBool: bad value %q", b)
}
return nil
}

View File

@ -1,9 +1,10 @@
package dhcpd package aghalg_test
import ( import (
"encoding/json" "encoding/json"
"testing" "testing"
"github.com/AdguardTeam/AdGuardHome/internal/aghalg"
"github.com/AdguardTeam/golibs/testutil" "github.com/AdguardTeam/golibs/testutil"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@ -14,37 +15,37 @@ func TestNullBool_UnmarshalJSON(t *testing.T) {
name string name string
wantErrMsg string wantErrMsg string
data []byte data []byte
want nullBool want aghalg.NullBool
}{{ }{{
name: "empty", name: "empty",
wantErrMsg: "", wantErrMsg: "",
data: []byte{}, data: []byte{},
want: nbNull, want: aghalg.NBNull,
}, { }, {
name: "null", name: "null",
wantErrMsg: "", wantErrMsg: "",
data: []byte("null"), data: []byte("null"),
want: nbNull, want: aghalg.NBNull,
}, { }, {
name: "true", name: "true",
wantErrMsg: "", wantErrMsg: "",
data: []byte("true"), data: []byte("true"),
want: nbTrue, want: aghalg.NBTrue,
}, { }, {
name: "false", name: "false",
wantErrMsg: "", wantErrMsg: "",
data: []byte("false"), data: []byte("false"),
want: nbFalse, want: aghalg.NBFalse,
}, { }, {
name: "invalid", name: "invalid",
wantErrMsg: `invalid nullBool value "invalid"`, wantErrMsg: `unmarshalling json data into aghalg.NullBool: bad value "invalid"`,
data: []byte("invalid"), data: []byte("invalid"),
want: nbNull, want: aghalg.NBNull,
}} }}
for _, tc := range testCases { for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
var got nullBool var got aghalg.NullBool
err := got.UnmarshalJSON(tc.data) err := got.UnmarshalJSON(tc.data)
testutil.AssertErrorMsg(t, tc.wantErrMsg, err) testutil.AssertErrorMsg(t, tc.wantErrMsg, err)
@ -53,9 +54,9 @@ func TestNullBool_UnmarshalJSON(t *testing.T) {
} }
t.Run("json", func(t *testing.T) { t.Run("json", func(t *testing.T) {
want := nbTrue want := aghalg.NBTrue
var got struct { var got struct {
A nullBool A aghalg.NullBool
} }
err := json.Unmarshal([]byte(`{"A":true}`), &got) err := json.Unmarshal([]byte(`{"A":true}`), &got)

View File

@ -10,6 +10,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/AdguardTeam/AdGuardHome/internal/aghalg"
"github.com/AdguardTeam/AdGuardHome/internal/aghhttp" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp"
"github.com/AdguardTeam/AdGuardHome/internal/aghnet" "github.com/AdguardTeam/AdGuardHome/internal/aghnet"
"github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/errors"
@ -145,7 +146,7 @@ type dhcpServerConfigJSON struct {
V4 *v4ServerConfJSON `json:"v4"` V4 *v4ServerConfJSON `json:"v4"`
V6 *v6ServerConfJSON `json:"v6"` V6 *v6ServerConfJSON `json:"v6"`
InterfaceName string `json:"interface_name"` InterfaceName string `json:"interface_name"`
Enabled nullBool `json:"enabled"` Enabled aghalg.NullBool `json:"enabled"`
} }
func (s *Server) handleDHCPSetConfigV4( func (s *Server) handleDHCPSetConfigV4(
@ -156,7 +157,7 @@ func (s *Server) handleDHCPSetConfigV4(
} }
v4Conf := v4JSONToServerConf(conf.V4) v4Conf := v4JSONToServerConf(conf.V4)
v4Conf.Enabled = conf.Enabled == nbTrue v4Conf.Enabled = conf.Enabled == aghalg.NBTrue
if len(v4Conf.RangeStart) == 0 { if len(v4Conf.RangeStart) == 0 {
v4Conf.Enabled = false v4Conf.Enabled = false
} }
@ -183,7 +184,7 @@ func (s *Server) handleDHCPSetConfigV6(
} }
v6Conf := v6JSONToServerConf(conf.V6) v6Conf := v6JSONToServerConf(conf.V6)
v6Conf.Enabled = conf.Enabled == nbTrue v6Conf.Enabled = conf.Enabled == aghalg.NBTrue
if len(v6Conf.RangeStart) == 0 { if len(v6Conf.RangeStart) == 0 {
v6Conf.Enabled = false v6Conf.Enabled = false
} }
@ -206,7 +207,7 @@ func (s *Server) handleDHCPSetConfigV6(
func (s *Server) handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) { func (s *Server) handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) {
conf := &dhcpServerConfigJSON{} conf := &dhcpServerConfigJSON{}
conf.Enabled = boolToNullBool(s.conf.Enabled) conf.Enabled = aghalg.BoolToNullBool(s.conf.Enabled)
conf.InterfaceName = s.conf.InterfaceName conf.InterfaceName = s.conf.InterfaceName
err := json.NewDecoder(r.Body).Decode(conf) err := json.NewDecoder(r.Body).Decode(conf)
@ -230,7 +231,7 @@ func (s *Server) handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) {
return return
} }
if conf.Enabled == nbTrue && !v4Enabled && !v6Enabled { if conf.Enabled == aghalg.NBTrue && !v4Enabled && !v6Enabled {
aghhttp.Error(r, w, http.StatusBadRequest, "dhcpv4 or dhcpv6 configuration must be complete") aghhttp.Error(r, w, http.StatusBadRequest, "dhcpv4 or dhcpv6 configuration must be complete")
return return
@ -243,8 +244,8 @@ func (s *Server) handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) {
return return
} }
if conf.Enabled != nbNull { if conf.Enabled != aghalg.NBNull {
s.conf.Enabled = conf.Enabled == nbTrue s.conf.Enabled = conf.Enabled == aghalg.NBTrue
} }
if conf.InterfaceName != "" { if conf.InterfaceName != "" {
@ -279,11 +280,11 @@ func (s *Server) handleDHCPSetConfig(w http.ResponseWriter, r *http.Request) {
type netInterfaceJSON struct { type netInterfaceJSON struct {
Name string `json:"name"` Name string `json:"name"`
GatewayIP net.IP `json:"gateway_ip"`
HardwareAddr string `json:"hardware_address"` HardwareAddr string `json:"hardware_address"`
Flags string `json:"flags"`
GatewayIP net.IP `json:"gateway_ip"`
Addrs4 []net.IP `json:"ipv4_addresses"` Addrs4 []net.IP `json:"ipv4_addresses"`
Addrs6 []net.IP `json:"ipv6_addresses"` Addrs6 []net.IP `json:"ipv6_addresses"`
Flags string `json:"flags"`
} }
func (s *Server) handleDHCPInterfaces(w http.ResponseWriter, r *http.Request) { func (s *Server) handleDHCPInterfaces(w http.ResponseWriter, r *http.Request) {

View File

@ -1,58 +0,0 @@
package dhcpd
import (
"bytes"
"fmt"
)
// nullBool is a nullable boolean. Use these in JSON requests and responses
// instead of pointers to bool.
//
// TODO(a.garipov): Inspect uses of *bool, move this type into some new package
// if we need it somewhere else.
type nullBool uint8
// nullBool values
const (
nbNull nullBool = iota
nbTrue
nbFalse
)
// String implements the fmt.Stringer interface for nullBool.
func (nb nullBool) String() (s string) {
switch nb {
case nbNull:
return "null"
case nbTrue:
return "true"
case nbFalse:
return "false"
}
return fmt.Sprintf("!invalid nullBool %d", uint8(nb))
}
// boolToNullBool converts a bool into a nullBool.
func boolToNullBool(cond bool) (nb nullBool) {
if cond {
return nbTrue
}
return nbFalse
}
// UnmarshalJSON implements the json.Unmarshaler interface for *nullBool.
func (nb *nullBool) UnmarshalJSON(b []byte) (err error) {
if len(b) == 0 || bytes.Equal(b, []byte("null")) {
*nb = nbNull
} else if bytes.Equal(b, []byte("true")) {
*nb = nbTrue
} else if bytes.Equal(b, []byte("false")) {
*nb = nbFalse
} else {
return fmt.Errorf("invalid nullBool value %q", b)
}
return nil
}

View File

@ -12,6 +12,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/AdguardTeam/AdGuardHome/internal/aghalg"
"github.com/AdguardTeam/AdGuardHome/internal/aghhttp" "github.com/AdguardTeam/AdGuardHome/internal/aghhttp"
"github.com/AdguardTeam/AdGuardHome/internal/aghnet" "github.com/AdguardTeam/AdGuardHome/internal/aghnet"
"github.com/AdguardTeam/AdGuardHome/internal/updater" "github.com/AdguardTeam/AdGuardHome/internal/updater"
@ -147,8 +148,8 @@ type versionResponse struct {
// setAllowedToAutoUpdate sets CanAutoUpdate to true if AdGuard Home is actually // setAllowedToAutoUpdate sets CanAutoUpdate to true if AdGuard Home is actually
// allowed to perform an automatic update by the OS. // allowed to perform an automatic update by the OS.
func (vr *versionResponse) setAllowedToAutoUpdate() (err error) { func (vr *versionResponse) setAllowedToAutoUpdate() (err error) {
if vr.CanAutoUpdate == nil || !*vr.CanAutoUpdate { if vr.CanAutoUpdate != aghalg.NBTrue {
return return nil
} }
tlsConf := &tlsConfigSettings{} tlsConf := &tlsConfigSettings{}
@ -162,7 +163,7 @@ func (vr *versionResponse) setAllowedToAutoUpdate() (err error) {
} }
} }
vr.CanAutoUpdate = &canUpdate vr.CanAutoUpdate = aghalg.BoolToNullBool(canUpdate)
return nil return nil
} }

View File

@ -11,7 +11,7 @@ import (
"github.com/AdguardTeam/AdGuardHome/internal/dnsforward" "github.com/AdguardTeam/AdGuardHome/internal/dnsforward"
"github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/errors"
"github.com/AdguardTeam/golibs/log" "github.com/AdguardTeam/golibs/log"
uuid "github.com/satori/go.uuid" "github.com/google/uuid"
"howett.net/plist" "howett.net/plist"
) )
@ -47,9 +47,9 @@ type payloadContent struct {
PayloadType string PayloadType string
PayloadIdentifier string PayloadIdentifier string
PayloadUUID string
PayloadDisplayName string PayloadDisplayName string
PayloadDescription string PayloadDescription string
PayloadUUID uuid.UUID
PayloadVersion int PayloadVersion int
} }
@ -63,18 +63,14 @@ const dnsSettingsPayloadType = "com.apple.dnsSettings.managed"
type mobileConfig struct { type mobileConfig struct {
PayloadDescription string PayloadDescription string
PayloadDisplayName string PayloadDisplayName string
PayloadIdentifier string
PayloadType string PayloadType string
PayloadUUID string
PayloadContent []*payloadContent PayloadContent []*payloadContent
PayloadIdentifier uuid.UUID
PayloadUUID uuid.UUID
PayloadVersion int PayloadVersion int
PayloadRemovalDisallowed bool PayloadRemovalDisallowed bool
} }
func genUUIDv4() string {
return uuid.NewV4().String()
}
const ( const (
dnsProtoHTTPS = "HTTPS" dnsProtoHTTPS = "HTTPS"
dnsProtoTLS = "TLS" dnsProtoTLS = "TLS"
@ -104,23 +100,23 @@ func encodeMobileConfig(d *dnsSettings, clientID string) ([]byte, error) {
return nil, fmt.Errorf("bad dns protocol %q", proto) return nil, fmt.Errorf("bad dns protocol %q", proto)
} }
payloadID := fmt.Sprintf("%s.%s", dnsSettingsPayloadType, genUUIDv4()) payloadID := fmt.Sprintf("%s.%s", dnsSettingsPayloadType, uuid.New())
data := &mobileConfig{ data := &mobileConfig{
PayloadDescription: "Adds AdGuard Home to macOS Big Sur " + PayloadDescription: "Adds AdGuard Home to macOS Big Sur and iOS 14 or newer systems",
"and iOS 14 or newer systems",
PayloadDisplayName: dspName, PayloadDisplayName: dspName,
PayloadIdentifier: genUUIDv4(),
PayloadType: "Configuration", PayloadType: "Configuration",
PayloadUUID: genUUIDv4(),
PayloadContent: []*payloadContent{{ PayloadContent: []*payloadContent{{
DNSSettings: d,
PayloadType: dnsSettingsPayloadType, PayloadType: dnsSettingsPayloadType,
PayloadIdentifier: payloadID, PayloadIdentifier: payloadID,
PayloadUUID: genUUIDv4(),
PayloadDisplayName: dspName, PayloadDisplayName: dspName,
PayloadDescription: "Configures device to use AdGuard Home", PayloadDescription: "Configures device to use AdGuard Home",
PayloadUUID: uuid.New(),
PayloadVersion: 1, PayloadVersion: 1,
DNSSettings: d,
}}, }},
PayloadIdentifier: uuid.New(),
PayloadUUID: uuid.New(),
PayloadVersion: 1, PayloadVersion: 1,
PayloadRemovalDisallowed: false, PayloadRemovalDisallowed: false,
} }

View File

@ -5,9 +5,9 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"strings"
"time" "time"
"github.com/AdguardTeam/AdGuardHome/internal/aghalg"
"github.com/AdguardTeam/AdGuardHome/internal/aghio" "github.com/AdguardTeam/AdGuardHome/internal/aghio"
"github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/errors"
) )
@ -17,11 +17,12 @@ const versionCheckPeriod = 8 * time.Hour
// VersionInfo contains information about a new version. // VersionInfo contains information about a new version.
type VersionInfo struct { type VersionInfo struct {
CanAutoUpdate *bool `json:"can_autoupdate,omitempty"` NewVersion string `json:"new_version,omitempty"`
NewVersion string `json:"new_version,omitempty"` Announcement string `json:"announcement,omitempty"`
Announcement string `json:"announcement,omitempty"` AnnouncementURL string `json:"announcement_url,omitempty"`
AnnouncementURL string `json:"announcement_url,omitempty"` // TODO(a.garipov): See if the frontend actually still cares about
SelfUpdateMinVersion string `json:"-"` // nullability.
CanAutoUpdate aghalg.NullBool `json:"can_autoupdate,omitempty"`
} }
// MaxResponseSize is responses on server's requests maximum length in bytes. // MaxResponseSize is responses on server's requests maximum length in bytes.
@ -67,15 +68,13 @@ func (u *Updater) VersionInfo(forceRecheck bool) (vi VersionInfo, err error) {
} }
func (u *Updater) parseVersionResponse(data []byte) (VersionInfo, error) { func (u *Updater) parseVersionResponse(data []byte) (VersionInfo, error) {
var canAutoUpdate bool
info := VersionInfo{ info := VersionInfo{
CanAutoUpdate: &canAutoUpdate, CanAutoUpdate: aghalg.NBFalse,
} }
versionJSON := map[string]string{ versionJSON := map[string]string{
"version": "", "version": "",
"announcement": "", "announcement": "",
"announcement_url": "", "announcement_url": "",
"selfupdate_min_version": "",
} }
err := json.Unmarshal(data, &versionJSON) err := json.Unmarshal(data, &versionJSON)
if err != nil { if err != nil {
@ -91,14 +90,9 @@ func (u *Updater) parseVersionResponse(data []byte) (VersionInfo, error) {
info.NewVersion = versionJSON["version"] info.NewVersion = versionJSON["version"]
info.Announcement = versionJSON["announcement"] info.Announcement = versionJSON["announcement"]
info.AnnouncementURL = versionJSON["announcement_url"] info.AnnouncementURL = versionJSON["announcement_url"]
info.SelfUpdateMinVersion = versionJSON["selfupdate_min_version"]
packageURL, ok := u.downloadURL(versionJSON) packageURL, ok := u.downloadURL(versionJSON)
if ok && info.CanAutoUpdate = aghalg.BoolToNullBool(ok && info.NewVersion != u.version)
info.NewVersion != u.version &&
strings.TrimPrefix(u.version, "v") >= strings.TrimPrefix(info.SelfUpdateMinVersion, "v") {
canAutoUpdate = true
}
u.newVersion = info.NewVersion u.newVersion = info.NewVersion
u.packageURL = packageURL u.packageURL = packageURL

View File

@ -104,11 +104,14 @@ func NewUpdater(conf *Config) *Updater {
} }
// Update performs the auto-update. // Update performs the auto-update.
func (u *Updater) Update() error { func (u *Updater) Update() (err error) {
u.mu.Lock() u.mu.Lock()
defer u.mu.Unlock() defer u.mu.Unlock()
err := u.prepare() log.Info("updater: updating")
defer func() { log.Info("updater: finished; errors: %v", err) }()
err = u.prepare()
if err != nil { if err != nil {
return err return err
} }
@ -178,7 +181,12 @@ func (u *Updater) prepare() (err error) {
u.backupExeName = filepath.Join(u.backupDir, exeName) u.backupExeName = filepath.Join(u.backupDir, exeName)
u.updateExeName = filepath.Join(u.updateDir, exeName) u.updateExeName = filepath.Join(u.updateDir, exeName)
log.Info("Updating from %s to %s. URL:%s", version.Version(), u.newVersion, u.packageURL) log.Debug(
"updater: updating from %s to %s using url: %s",
version.Version(),
u.newVersion,
u.packageURL,
)
// TODO(a.garipov): Use os.Args[0] instead? // TODO(a.garipov): Use os.Args[0] instead?
u.currentExeName = filepath.Join(u.workDir, exeName) u.currentExeName = filepath.Join(u.workDir, exeName)
@ -194,7 +202,7 @@ func (u *Updater) unpack() error {
var err error var err error
_, pkgNameOnly := filepath.Split(u.packageURL) _, pkgNameOnly := filepath.Split(u.packageURL)
log.Debug("updater: unpacking the package") log.Debug("updater: unpacking package")
if strings.HasSuffix(pkgNameOnly, ".zip") { if strings.HasSuffix(pkgNameOnly, ".zip") {
u.unpackedFiles, err = zipFileUnpack(u.packageName, u.updateDir) u.unpackedFiles, err = zipFileUnpack(u.packageName, u.updateDir)
if err != nil { if err != nil {
@ -229,7 +237,7 @@ func (u *Updater) check() error {
} }
func (u *Updater) backup() error { func (u *Updater) backup() error {
log.Debug("updater: backing up the current configuration") log.Debug("updater: backing up current configuration")
_ = os.Mkdir(u.backupDir, 0o755) _ = os.Mkdir(u.backupDir, 0o755)
err := copyFile(u.confName, filepath.Join(u.backupDir, "AdGuardHome.yaml")) err := copyFile(u.confName, filepath.Join(u.backupDir, "AdGuardHome.yaml"))
if err != nil { if err != nil {
@ -252,7 +260,7 @@ func (u *Updater) replace() error {
return fmt.Errorf("copySupportingFiles(%s, %s) failed: %s", u.updateDir, u.workDir, err) return fmt.Errorf("copySupportingFiles(%s, %s) failed: %s", u.updateDir, u.workDir, err)
} }
log.Debug("updater: renaming: %s -> %s", u.currentExeName, u.backupExeName) log.Debug("updater: renaming: %s to %s", u.currentExeName, u.backupExeName)
err = os.Rename(u.currentExeName, u.backupExeName) err = os.Rename(u.currentExeName, u.backupExeName)
if err != nil { if err != nil {
return err return err
@ -268,7 +276,7 @@ func (u *Updater) replace() error {
return err return err
} }
log.Debug("updater: renamed: %s -> %s", u.updateExeName, u.currentExeName) log.Debug("updater: renamed: %s to %s", u.updateExeName, u.currentExeName)
return nil return nil
} }
@ -297,7 +305,7 @@ func (u *Updater) downloadPackageFile(url, filename string) (err error) {
return fmt.Errorf("http request failed: %w", err) return fmt.Errorf("http request failed: %w", err)
} }
log.Debug("updater: reading HTTP body") log.Debug("updater: reading http body")
// This use of ReadAll is now safe, because we limited body's Reader. // This use of ReadAll is now safe, because we limited body's Reader.
body, err := io.ReadAll(r) body, err := io.ReadAll(r)
if err != nil { if err != nil {
@ -343,7 +351,7 @@ func tarGzFileUnpackOne(outDir string, tr *tar.Reader, hdr *tar.Header) (name st
} }
if hdr.Typeflag != tar.TypeReg { if hdr.Typeflag != tar.TypeReg {
log.Debug("updater: %s: unknown file type %d, skipping", name, hdr.Typeflag) log.Info("updater: %s: unknown file type %d, skipping", name, hdr.Typeflag)
return "", nil return "", nil
} }
@ -364,7 +372,7 @@ func tarGzFileUnpackOne(outDir string, tr *tar.Reader, hdr *tar.Header) (name st
return "", fmt.Errorf("io.Copy(): %w", err) return "", fmt.Errorf("io.Copy(): %w", err)
} }
log.Tracef("updater: created file %s", outputName) log.Debug("updater: created file %q", outputName)
return name, nil return name, nil
} }
@ -440,7 +448,7 @@ func zipFileUnpackOne(outDir string, zf *zip.File) (name string, err error) {
return "", fmt.Errorf("os.Mkdir(%q): %w", outputName, err) return "", fmt.Errorf("os.Mkdir(%q): %w", outputName, err)
} }
log.Tracef("created directory %q", outputName) log.Debug("updater: created directory %q", outputName)
return "", nil return "", nil
} }
@ -457,7 +465,7 @@ func zipFileUnpackOne(outDir string, zf *zip.File) (name string, err error) {
return "", fmt.Errorf("io.Copy(): %w", err) return "", fmt.Errorf("io.Copy(): %w", err)
} }
log.Tracef("created file %s", outputName) log.Debug("updater: created file %q", outputName)
return name, nil return name, nil
} }
@ -516,7 +524,7 @@ func copySupportingFiles(files []string, srcdir, dstdir string) error {
return err return err
} }
log.Debug("updater: copied: %q -> %q", src, dst) log.Debug("updater: copied: %q to %q", src, dst)
} }
return nil return nil

View File

@ -10,6 +10,7 @@ import (
"strconv" "strconv"
"testing" "testing"
"github.com/AdguardTeam/AdGuardHome/internal/aghalg"
"github.com/AdguardTeam/AdGuardHome/internal/aghtest" "github.com/AdguardTeam/AdGuardHome/internal/aghtest"
"github.com/AdguardTeam/AdGuardHome/internal/version" "github.com/AdguardTeam/AdGuardHome/internal/version"
"github.com/AdguardTeam/golibs/testutil" "github.com/AdguardTeam/golibs/testutil"
@ -92,10 +93,7 @@ func TestUpdateGetVersion(t *testing.T) {
assert.Equal(t, "v0.103.0-beta.2", info.NewVersion) assert.Equal(t, "v0.103.0-beta.2", info.NewVersion)
assert.Equal(t, "AdGuard Home v0.103.0-beta.2 is now available!", info.Announcement) assert.Equal(t, "AdGuard Home v0.103.0-beta.2 is now available!", info.Announcement)
assert.Equal(t, "https://github.com/AdguardTeam/AdGuardHome/internal/releases", info.AnnouncementURL) assert.Equal(t, "https://github.com/AdguardTeam/AdGuardHome/internal/releases", info.AnnouncementURL)
assert.Equal(t, "v0.0", info.SelfUpdateMinVersion) assert.Equal(t, aghalg.NBTrue, info.CanAutoUpdate)
if assert.NotNil(t, info.CanAutoUpdate) {
assert.True(t, *info.CanAutoUpdate)
}
// check cached // check cached
_, err = u.VersionInfo(false) _, err = u.VersionInfo(false)
@ -290,10 +288,7 @@ func TestUpdater_VersionInto_ARM(t *testing.T) {
assert.Equal(t, "v0.103.0-beta.2", info.NewVersion) assert.Equal(t, "v0.103.0-beta.2", info.NewVersion)
assert.Equal(t, "AdGuard Home v0.103.0-beta.2 is now available!", info.Announcement) assert.Equal(t, "AdGuard Home v0.103.0-beta.2 is now available!", info.Announcement)
assert.Equal(t, "https://github.com/AdguardTeam/AdGuardHome/internal/releases", info.AnnouncementURL) assert.Equal(t, "https://github.com/AdguardTeam/AdGuardHome/internal/releases", info.AnnouncementURL)
assert.Equal(t, "v0.0", info.SelfUpdateMinVersion) assert.Equal(t, aghalg.NBTrue, info.CanAutoUpdate)
if assert.NotNil(t, info.CanAutoUpdate) {
assert.True(t, *info.CanAutoUpdate)
}
} }
func TestUpdater_VersionInto_MIPS(t *testing.T) { func TestUpdater_VersionInto_MIPS(t *testing.T) {
@ -330,8 +325,5 @@ func TestUpdater_VersionInto_MIPS(t *testing.T) {
assert.Equal(t, "v0.103.0-beta.2", info.NewVersion) assert.Equal(t, "v0.103.0-beta.2", info.NewVersion)
assert.Equal(t, "AdGuard Home v0.103.0-beta.2 is now available!", info.Announcement) assert.Equal(t, "AdGuard Home v0.103.0-beta.2 is now available!", info.Announcement)
assert.Equal(t, "https://github.com/AdguardTeam/AdGuardHome/internal/releases", info.AnnouncementURL) assert.Equal(t, "https://github.com/AdguardTeam/AdGuardHome/internal/releases", info.AnnouncementURL)
assert.Equal(t, "v0.0", info.SelfUpdateMinVersion) assert.Equal(t, aghalg.NBTrue, info.CanAutoUpdate)
if assert.NotNil(t, info.CanAutoUpdate) {
assert.True(t, *info.CanAutoUpdate)
}
} }

View File

@ -363,6 +363,7 @@ else
fi fi
readonly announcement_url readonly announcement_url
# TODO(a.garipov): Remove "selfupdate_min_version" in future versions.
rm -f "$version_json" rm -f "$version_json"
echo "{ echo "{
\"version\": \"${version}\", \"version\": \"${version}\",