From fa49d74aa8f0eac826331732d4008799dc6b8f1e Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Wed, 7 Dec 2022 16:29:06 +0300 Subject: [PATCH] Pull request: upd-all Merge in DNS/adguard-home from upd-all to master Squashed commit of the following: commit 8fe5f029f2092ff1b23c6b734fef35937658c6d3 Author: Ainar Garipov Date: Wed Dec 7 16:13:04 2022 +0300 aghos: fix windows root dir commit 57237df1d95c7c72cc02103eb869590a2b8fe50c Author: Ainar Garipov Date: Wed Dec 7 15:18:59 2022 +0300 all: upd go, i18n, svcs --- CHANGELOG.md | 8 +++++++ bamboo-specs/release.yaml | 6 +++--- bamboo-specs/test.yaml | 2 +- client/src/__locales/be.json | 7 ++++-- client/src/__locales/cs.json | 5 ++++- client/src/__locales/da.json | 5 ++++- client/src/__locales/de.json | 5 ++++- client/src/__locales/es.json | 5 ++++- client/src/__locales/fi.json | 5 ++++- client/src/__locales/fr.json | 5 ++++- client/src/__locales/hr.json | 5 ++++- client/src/__locales/hu.json | 5 ++++- client/src/__locales/id.json | 5 ++++- client/src/__locales/it.json | 5 ++++- client/src/__locales/ja.json | 5 ++++- client/src/__locales/ko.json | 5 ++++- client/src/__locales/nl.json | 5 ++++- client/src/__locales/pl.json | 5 ++++- client/src/__locales/pt-br.json | 5 ++++- client/src/__locales/pt-pt.json | 5 ++++- client/src/__locales/ro.json | 5 ++++- client/src/__locales/ru.json | 5 ++++- client/src/__locales/sk.json | 5 ++++- client/src/__locales/sl.json | 5 ++++- client/src/__locales/sr-cs.json | 5 ++++- client/src/__locales/sv.json | 5 ++++- client/src/__locales/tr.json | 5 ++++- client/src/__locales/uk.json | 7 ++++-- client/src/__locales/vi.json | 5 ++++- client/src/__locales/zh-cn.json | 5 ++++- client/src/__locales/zh-tw.json | 5 ++++- internal/aghnet/hostscontainer_windows.go | 2 +- internal/aghos/os.go | 8 +++---- internal/aghos/os_unix.go | 5 +++++ internal/aghos/os_windows.go | 16 ++++++++++++++ internal/filtering/servicelist.go | 26 +++++++++++------------ 36 files changed, 165 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cf6e4c3..3d7e7927 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,12 @@ See also the [v0.107.20 GitHub milestone][ms-v0.107.20]. [ms-v0.107.20]: https://github.com/AdguardTeam/AdGuardHome/milestone/56?closed=1 --> +### Security + +- Go version has been updated to prevent the possibility of exploiting the + CVE-2022-41717 and CVE-2022-41720 Go vulnerability fixed in [Go + 1.18.9][go-1.18.9]. + ### Added - The ability to clear the DNS cache ([#5190]). @@ -49,6 +55,8 @@ See also the [v0.107.20 GitHub milestone][ms-v0.107.20]. [#5193]: https://github.com/AdguardTeam/AdGuardHome/issues/5193 [#5208]: https://github.com/AdguardTeam/AdGuardHome/issues/5208 +[go-1.18.9]: https://groups.google.com/g/golang-announce/c/L_3rmdT0BMU + ## [v0.107.19] - 2022-11-23 diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index 86cc16ec..a43dca2b 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -7,7 +7,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerGo': 'adguard/golang-ubuntu:5.3' + 'dockerGo': 'adguard/golang-ubuntu:5.4' 'stages': - 'Build frontend': @@ -322,7 +322,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerGo': 'adguard/golang-ubuntu:5.3' + 'dockerGo': 'adguard/golang-ubuntu:5.4' # release-vX.Y.Z branches are the branches from which the actual final release # is built. - '^release-v[0-9]+\.[0-9]+\.[0-9]+': @@ -337,4 +337,4 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerGo': 'adguard/golang-ubuntu:5.3' + 'dockerGo': 'adguard/golang-ubuntu:5.4' diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index ac8c67fd..0ea2df9c 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -5,7 +5,7 @@ 'key': 'AHBRTSPECS' 'name': 'AdGuard Home - Build and run tests' 'variables': - 'dockerGo': 'adguard/golang-ubuntu:5.3' + 'dockerGo': 'adguard/golang-ubuntu:5.4' 'stages': - 'Tests': diff --git a/client/src/__locales/be.json b/client/src/__locales/be.json index 19e45a4b..ca92d807 100644 --- a/client/src/__locales/be.json +++ b/client/src/__locales/be.json @@ -393,7 +393,7 @@ "encryption_issuer": "Выдавец", "encryption_hostnames": "Імёны хастоў", "encryption_reset": "Вы ўпэўнены, што хочаце скінуць налады шыфравання?", - "encryption_warning": "Увага", + "encryption_warning": "Папярэджанне", "topline_expiring_certificate": "Ваш SSL-сертыфікат хутка мінае. Абновіце <0>Налады шыфравання.", "topline_expired_certificate": "Ваш SSL-сертыфікат мінуў. Абновіце <0>Налады шыфравання.", "form_error_port_range": "Увядзіце нумар порта з інтэрвалу 80-65535", @@ -638,5 +638,8 @@ "safe_browsing": "Бяспечны інтэрнэт", "served_from_cache": "{{value}} (атрымана з кэша)", "form_error_password_length": "Пароль павінен быць не менш за {{value}} сімвалаў", - "anonymizer_notification": "<0>Заўвага: Ананімізацыя IP уключана. Вы можаце адключыць яго ў <1>Агульных наладах ." + "anonymizer_notification": "<0>Заўвага: Ананімізацыя IP уключана. Вы можаце адключыць яго ў <1>Агульных наладах .", + "confirm_dns_cache_clear": "Вы ўпэўнены, што хочаце ачысціць кэш DNS?", + "cache_cleared": "Кэш DNS паспяхова ачышчаны", + "clear_cache": "Ачысціць кэш" } diff --git a/client/src/__locales/cs.json b/client/src/__locales/cs.json index 15f79692..ccb3033b 100644 --- a/client/src/__locales/cs.json +++ b/client/src/__locales/cs.json @@ -638,5 +638,8 @@ "safe_browsing": "Bezpečné prohlížení", "served_from_cache": "{{value}} (převzato z mezipaměti)", "form_error_password_length": "Heslo musí být alespoň {{value}} znaků dlouhé", - "anonymizer_notification": "<0>Poznámka: Anonymizace IP je zapnuta. Můžete ji vypnout v <1>Obecných nastaveních." + "anonymizer_notification": "<0>Poznámka: Anonymizace IP je zapnuta. Můžete ji vypnout v <1>Obecných nastaveních.", + "confirm_dns_cache_clear": "Opravdu chcete vymazat mezipaměť DNS?", + "cache_cleared": "Mezipaměť DNS úspěšně vymazána", + "clear_cache": "Vymazat mezipaměť" } diff --git a/client/src/__locales/da.json b/client/src/__locales/da.json index 7a999346..ae074b89 100644 --- a/client/src/__locales/da.json +++ b/client/src/__locales/da.json @@ -638,5 +638,8 @@ "safe_browsing": "Sikker Browsing", "served_from_cache": "{{value}} (leveret fra cache)", "form_error_password_length": "Adgangskoden skal udgøre mindst {{value}} tegn.", - "anonymizer_notification": "<0>Bemærk: IP-anonymisering er aktiveret. Det kan deaktiveres via <1>Generelle indstillinger." + "anonymizer_notification": "<0>Bemærk: IP-anonymisering er aktiveret. Det kan deaktiveres via <1>Generelle indstillinger.", + "confirm_dns_cache_clear": "Sikker på, at DNS-cache skal ryddes?", + "cache_cleared": "DNS-cache hermed ryddet", + "clear_cache": "Ryd cache" } diff --git a/client/src/__locales/de.json b/client/src/__locales/de.json index d1d45e6b..34cdfb09 100644 --- a/client/src/__locales/de.json +++ b/client/src/__locales/de.json @@ -638,5 +638,8 @@ "safe_browsing": "Internetsicherheit", "served_from_cache": "{{value}} (aus dem Cache abgerufen)", "form_error_password_length": "Das Passwort muss mindestens {{value}} Zeichen enthalten", - "anonymizer_notification": "<0>Hinweis: Die IP-Anonymisierung ist aktiviert. Sie können sie in den <1>Allgemeinen Einstellungen deaktivieren." + "anonymizer_notification": "<0>Hinweis: Die IP-Anonymisierung ist aktiviert. Sie können sie in den <1>Allgemeinen Einstellungen deaktivieren.", + "confirm_dns_cache_clear": "Möchten Sie den DNS-Cache wirklich leeren?", + "cache_cleared": "DNS-Cache erfolgreich geleert", + "clear_cache": "Cache leeren" } diff --git a/client/src/__locales/es.json b/client/src/__locales/es.json index dc881214..5e3aedd3 100644 --- a/client/src/__locales/es.json +++ b/client/src/__locales/es.json @@ -638,5 +638,8 @@ "safe_browsing": "Navegación segura", "served_from_cache": "{{value}} (servido desde la caché)", "form_error_password_length": "La contraseña debe tener al menos {{value}} caracteres", - "anonymizer_notification": "<0>Nota: La anonimización de IP está habilitada. Puedes deshabilitarla en <1>Configuración general." + "anonymizer_notification": "<0>Nota: La anonimización de IP está habilitada. Puedes deshabilitarla en <1>Configuración general.", + "confirm_dns_cache_clear": "¿Estás seguro de que deseas borrar la caché de DNS?", + "cache_cleared": "Caché DNS borrado con éxito", + "clear_cache": "Borrar caché" } diff --git a/client/src/__locales/fi.json b/client/src/__locales/fi.json index fd02be0e..f0d4e8cf 100644 --- a/client/src/__locales/fi.json +++ b/client/src/__locales/fi.json @@ -638,5 +638,8 @@ "safe_browsing": "Turvallinen selaus", "served_from_cache": "{{value}} (jaettu välimuistista)", "form_error_password_length": "Salasanan on oltava ainakin {{value}} merkkiä", - "anonymizer_notification": "<0>Huomioi: IP-osoitteen anonymisointi on käytössä. Voit poistaa sen käytöstä <1>Yleisistä asetuksista." + "anonymizer_notification": "<0>Huomioi: IP-osoitteen anonymisointi on käytössä. Voit poistaa sen käytöstä <1>Yleisistä asetuksista.", + "confirm_dns_cache_clear": "Haluatko varmasti tyhjentää DNS-välimuistin?", + "cache_cleared": "DNS-välimuistin tyhjennys onnistui", + "clear_cache": "Tyhjennä välimuisti" } diff --git a/client/src/__locales/fr.json b/client/src/__locales/fr.json index 310f429b..ff4aed42 100644 --- a/client/src/__locales/fr.json +++ b/client/src/__locales/fr.json @@ -638,5 +638,8 @@ "safe_browsing": "Navigation sécurisée", "served_from_cache": "{{value}} (depuis le cache)", "form_error_password_length": "Le mot de passe doit comporter au moins {{value}} caractères", - "anonymizer_notification": "<0>Note : L'anonymisation IP est activée. Vous pouvez la désactiver dans les <1>paramètres généraux." + "anonymizer_notification": "<0>Note : L'anonymisation IP est activée. Vous pouvez la désactiver dans les <1>paramètres généraux.", + "confirm_dns_cache_clear": "Voulez-vous vraiment vider le cache DNS ?", + "cache_cleared": "Le cache DNS a été vidé", + "clear_cache": "Vider le cache" } diff --git a/client/src/__locales/hr.json b/client/src/__locales/hr.json index 24f9376a..b9477551 100644 --- a/client/src/__locales/hr.json +++ b/client/src/__locales/hr.json @@ -638,5 +638,8 @@ "safe_browsing": "Sigurno surfanje", "served_from_cache": "{{value}} (dohvaćeno iz predmemorije)", "form_error_password_length": "Lozinka mora imati najmanje {{value}} znakova", - "anonymizer_notification": "<0>Napomena:IP anonimizacija je omogućena. Možete ju onemogućiti u <1>općim postavkama." + "anonymizer_notification": "<0>Napomena:IP anonimizacija je omogućena. Možete ju onemogućiti u <1>općim postavkama.", + "confirm_dns_cache_clear": "Jeste li sigurni da želite očistiti DNS predmemoriju?", + "cache_cleared": "DNS predmemorija je uspješno izbrisana", + "clear_cache": "Očisti predmemoriju" } diff --git a/client/src/__locales/hu.json b/client/src/__locales/hu.json index bf408b34..534fd69e 100644 --- a/client/src/__locales/hu.json +++ b/client/src/__locales/hu.json @@ -638,5 +638,8 @@ "safe_browsing": "Biztonságos böngészés", "served_from_cache": "{{value}} (gyorsítótárból kiszolgálva)", "form_error_password_length": "A jelszó legalább {{value}} karakter hosszú kell, hogy legyen", - "anonymizer_notification": "<0>Megjegyzés: Az IP anonimizálás engedélyezve van. Az <1>Általános beállításoknál letilthatja ." + "anonymizer_notification": "<0>Megjegyzés: Az IP anonimizálás engedélyezve van. Az <1>Általános beállításoknál letilthatja .", + "confirm_dns_cache_clear": "Biztos benne, hogy törölni szeretné a DNS-gyorsítótárat?", + "cache_cleared": "A DNS gyorsítótár sikeresen törlődött", + "clear_cache": "Gyorsítótár törlése" } diff --git a/client/src/__locales/id.json b/client/src/__locales/id.json index f285d669..97530100 100644 --- a/client/src/__locales/id.json +++ b/client/src/__locales/id.json @@ -638,5 +638,8 @@ "safe_browsing": "Penjelajahan Aman", "served_from_cache": "{{value}} (disajikan dari cache)", "form_error_password_length": "Kata sandi harus minimal {{value}} karakter", - "anonymizer_notification": "<0>Catatan: Anonimisasi IP diaktifkan. Anda dapat menonaktifkannya di <1>Pengaturan umum ." + "anonymizer_notification": "<0>Catatan: Anonimisasi IP diaktifkan. Anda dapat menonaktifkannya di <1>Pengaturan umum .", + "confirm_dns_cache_clear": "Apakah Anda yakin ingin menghapus cache DNS?", + "cache_cleared": "Cache DNS berhasil dibersihkan", + "clear_cache": "Hapus cache" } diff --git a/client/src/__locales/it.json b/client/src/__locales/it.json index f71f8a40..128fe91b 100644 --- a/client/src/__locales/it.json +++ b/client/src/__locales/it.json @@ -638,5 +638,8 @@ "safe_browsing": "Navigazione Sicura", "served_from_cache": "{{value}} (fornito dalla cache)", "form_error_password_length": "La password deve contenere almeno {{value}} caratteri", - "anonymizer_notification": "<0>Attenzione: L'anonimizzazione dell'IP è abilitata. Puoi disabilitarla in <1>Impostazioni generali." + "anonymizer_notification": "<0>Attenzione: L'anonimizzazione dell'IP è abilitata. Puoi disabilitarla in <1>Impostazioni generali.", + "confirm_dns_cache_clear": "Sei sicuro di voler cancellare la cache DNS?", + "cache_cleared": "Cache DNS è stata cancellata correttamente", + "clear_cache": "Cancella cache" } diff --git a/client/src/__locales/ja.json b/client/src/__locales/ja.json index 398b11e8..2215358d 100644 --- a/client/src/__locales/ja.json +++ b/client/src/__locales/ja.json @@ -638,5 +638,8 @@ "safe_browsing": "セーフブラウジング", "served_from_cache": "{{value}} (キャッシュから応答)", "form_error_password_length": "パスワードは{{value}}文字以上にしてください", - "anonymizer_notification": "【<0>注意】IPの匿名化が有効になっています。 <1>一般設定で無効にできます。" + "anonymizer_notification": "【<0>注意】IPの匿名化が有効になっています。 <1>一般設定で無効にできます。", + "confirm_dns_cache_clear": "DNS キャッシュをクリアしてもよろしいですか?", + "cache_cleared": "DNSキャッシュのクリア完了です。", + "clear_cache": "キャッシュをクリアする" } diff --git a/client/src/__locales/ko.json b/client/src/__locales/ko.json index de317c8a..aff7452e 100644 --- a/client/src/__locales/ko.json +++ b/client/src/__locales/ko.json @@ -638,5 +638,8 @@ "safe_browsing": "세이프 브라우징", "served_from_cache": "{{value}} (캐시에서 제공)", "form_error_password_length": "비밀번호는 {{value}}자 이상이어야 합니다", - "anonymizer_notification": "<0>참고: IP 익명화가 활성화되었습니다. <1>일반 설정에서 비활성화할 수 있습니다." + "anonymizer_notification": "<0>참고: IP 익명화가 활성화되었습니다. <1>일반 설정에서 비활성화할 수 있습니다.", + "confirm_dns_cache_clear": "정말로 DNS 캐시를 지우시겠습니까?", + "cache_cleared": "DNS 캐시를 성공적으로 지웠습니다", + "clear_cache": "캐시 지우기" } diff --git a/client/src/__locales/nl.json b/client/src/__locales/nl.json index a7722884..93566aa8 100644 --- a/client/src/__locales/nl.json +++ b/client/src/__locales/nl.json @@ -638,5 +638,8 @@ "safe_browsing": "Veilig browsen", "served_from_cache": "{{value}} (geleverd vanuit cache)", "form_error_password_length": "Wachtwoord moet minimaal {{value}} tekens lang zijn", - "anonymizer_notification": "<0>Opmerking: IP-anonimisering is ingeschakeld. Je kunt het uitschakelen in <1>Algemene instellingen." + "anonymizer_notification": "<0>Opmerking: IP-anonimisering is ingeschakeld. Je kunt het uitschakelen in <1>Algemene instellingen.", + "confirm_dns_cache_clear": "Weet je zeker dat je de DNS-cache wilt wissen?", + "cache_cleared": "DNS-cache succesvol gewist", + "clear_cache": "Cache wissen" } diff --git a/client/src/__locales/pl.json b/client/src/__locales/pl.json index d175b408..508ed9c4 100644 --- a/client/src/__locales/pl.json +++ b/client/src/__locales/pl.json @@ -638,5 +638,8 @@ "safe_browsing": "Bezpieczne przeglądanie", "served_from_cache": "{{value}} (podawane z pamięci podręcznej)", "form_error_password_length": "Hasło musi mieć co najmniej {{value}} znaków", - "anonymizer_notification": "<0>Uwaga: Anonimizacja IP jest włączona. Możesz ją wyłączyć w <1>Ustawieniach ogólnych." + "anonymizer_notification": "<0>Uwaga: Anonimizacja IP jest włączona. Możesz ją wyłączyć w <1>Ustawieniach ogólnych.", + "confirm_dns_cache_clear": "Czy na pewno chcesz wyczyścić pamięć podręczną DNS?", + "cache_cleared": "Pamięć podręczna DNS została pomyślnie wyczyszczona", + "clear_cache": "Wyczyść pamięć podręczną" } diff --git a/client/src/__locales/pt-br.json b/client/src/__locales/pt-br.json index ea2da002..cd7428ee 100644 --- a/client/src/__locales/pt-br.json +++ b/client/src/__locales/pt-br.json @@ -638,5 +638,8 @@ "safe_browsing": "Navegação segura", "served_from_cache": "{{value}} (servido do cache)", "form_error_password_length": "A senha deve ter pelo menos {{value}} caracteres", - "anonymizer_notification": "<0>Observação: A anonimização de IP está ativada. Você pode desativá-lo em <1>Configurações gerais." + "anonymizer_notification": "<0>Observação: A anonimização de IP está ativada. Você pode desativá-lo em <1>Configurações gerais.", + "confirm_dns_cache_clear": "Tem certeza de que deseja limpar o cache DNS?", + "cache_cleared": "Cache DNS limpo com sucesso", + "clear_cache": "Limpar cache" } diff --git a/client/src/__locales/pt-pt.json b/client/src/__locales/pt-pt.json index 81c92867..9905392f 100644 --- a/client/src/__locales/pt-pt.json +++ b/client/src/__locales/pt-pt.json @@ -638,5 +638,8 @@ "safe_browsing": "Navegação segura", "served_from_cache": "{{value}} (servido do cache)", "form_error_password_length": "A palavra-passe deve ter pelo menos {{value}} caracteres", - "anonymizer_notification": "<0>Observação: A anonimização de IP está ativada. Você pode desativá-la em <1>Definições gerais." + "anonymizer_notification": "<0>Observação: A anonimização de IP está ativada. Você pode desativá-la em <1>Definições gerais.", + "confirm_dns_cache_clear": "Tem certeza de que quer limpar a cache DNS?", + "cache_cleared": "O cache DNS foi apagado com sucesso", + "clear_cache": "Limpar cache" } diff --git a/client/src/__locales/ro.json b/client/src/__locales/ro.json index 82c86901..195d3f5e 100644 --- a/client/src/__locales/ro.json +++ b/client/src/__locales/ro.json @@ -638,5 +638,8 @@ "safe_browsing": "Navigare în siguranță", "served_from_cache": "{{value}} (furnizat din cache)", "form_error_password_length": "Parola trebuie să aibă cel puțin {{value}} caractere", - "anonymizer_notification": "<0>Nota: Anonimizarea IP este activată. Puteți să o dezactivați în <1>Setări generale." + "anonymizer_notification": "<0>Nota: Anonimizarea IP este activată. Puteți să o dezactivați în <1>Setări generale.", + "confirm_dns_cache_clear": "Sunteți sigur că doriți să ștergeți memoria cache DNS?", + "cache_cleared": "Cache-ul DNS a fost golit cu succes", + "clear_cache": "Goliți memoria cache" } diff --git a/client/src/__locales/ru.json b/client/src/__locales/ru.json index c1a5119b..f712bd75 100644 --- a/client/src/__locales/ru.json +++ b/client/src/__locales/ru.json @@ -638,5 +638,8 @@ "safe_browsing": "Безопасный интернет", "served_from_cache": "{{value}} (получено из кеша)", "form_error_password_length": "Пароль должен быть длиной не меньше {{value}} символов", - "anonymizer_notification": "<0>Внимание: включена анонимизация IP-адресов. Вы можете отключить её в разделе <1>Основные настройки." + "anonymizer_notification": "<0>Внимание: включена анонимизация IP-адресов. Вы можете отключить её в разделе <1>Основные настройки.", + "confirm_dns_cache_clear": "Вы уверены, что хотите очистить кеш DNS?", + "cache_cleared": "Кеш DNS успешно очищен", + "clear_cache": "Очистить кеш" } diff --git a/client/src/__locales/sk.json b/client/src/__locales/sk.json index 473557c4..b44501e6 100644 --- a/client/src/__locales/sk.json +++ b/client/src/__locales/sk.json @@ -638,5 +638,8 @@ "safe_browsing": "Bezpečné prehliadanie", "served_from_cache": "{{value}} (prevzatá z cache pamäte)", "form_error_password_length": "Heslo musí mať dĺžku aspoň {{value}} znakov", - "anonymizer_notification": "<0>Poznámka: Anonymizácia IP je zapnutá. Môžete ju vypnúť vo <1>Všeobecných nastaveniach." + "anonymizer_notification": "<0>Poznámka: Anonymizácia IP je zapnutá. Môžete ju vypnúť vo <1>Všeobecných nastaveniach.", + "confirm_dns_cache_clear": "Naozaj chcete vymazať vyrovnávaciu pamäť DNS?", + "cache_cleared": "Vyrovnávacia pamäť DNS bola úspešne vymazaná", + "clear_cache": "Vymazať vyrovnávaciu pamäť" } diff --git a/client/src/__locales/sl.json b/client/src/__locales/sl.json index 7f854f0a..bb6a60c6 100644 --- a/client/src/__locales/sl.json +++ b/client/src/__locales/sl.json @@ -638,5 +638,8 @@ "safe_browsing": "Varno brskanje", "served_from_cache": "{{value}} (postreženo iz predpomnilnika)", "form_error_password_length": "Geslo mora vsebovati najmanj {{value}} znakov", - "anonymizer_notification": "<0>Opomba: Anonimizacija IP je omogočena. Onemogočite ga lahko v <1>Splošnih nastavitvah." + "anonymizer_notification": "<0>Opomba: Anonimizacija IP je omogočena. Onemogočite ga lahko v <1>Splošnih nastavitvah.", + "confirm_dns_cache_clear": "Ali ste prepričani, da želite počistiti predpomnilnik DNS?", + "cache_cleared": "Predpomnilnik DNS je bil uspešno počiščen", + "clear_cache": "Počisti predpomnilnik" } diff --git a/client/src/__locales/sr-cs.json b/client/src/__locales/sr-cs.json index 9b676752..53b0c3e5 100644 --- a/client/src/__locales/sr-cs.json +++ b/client/src/__locales/sr-cs.json @@ -638,5 +638,8 @@ "safe_browsing": "Sigurno pregledanje", "served_from_cache": "{{value}} (posluženo iz predmemorije)", "form_error_password_length": "Lozinka mora imati najmanje {{value}} znakova", - "anonymizer_notification": "<0>Nota: IP prepoznavanje je omogućeno. Možete ga onemogućiti u opštim <1>postavkama." + "anonymizer_notification": "<0>Nota: IP prepoznavanje je omogućeno. Možete ga onemogućiti u opštim <1>postavkama.", + "confirm_dns_cache_clear": "Želite li zaista da obrišite DNS keš?", + "cache_cleared": "DNS keš je uspešno očišćen", + "clear_cache": "Obriši keš memoriju" } diff --git a/client/src/__locales/sv.json b/client/src/__locales/sv.json index 50c12d07..7715211f 100644 --- a/client/src/__locales/sv.json +++ b/client/src/__locales/sv.json @@ -638,5 +638,8 @@ "safe_browsing": "Säker surfning", "served_from_cache": "{{value}} (levereras från cache)", "form_error_password_length": "Lösenordet måste vara minst {{value}} tecken långt", - "anonymizer_notification": "<0>Observera: IP-anonymisering är aktiverad. Du kan inaktivera den i <1>Allmänna inställningar." + "anonymizer_notification": "<0>Observera: IP-anonymisering är aktiverad. Du kan inaktivera den i <1>Allmänna inställningar.", + "confirm_dns_cache_clear": "Är du säker på att du vill rensa DNS-cache?", + "cache_cleared": "DNS-cacheminnet har rensats", + "clear_cache": "Rensa cache" } diff --git a/client/src/__locales/tr.json b/client/src/__locales/tr.json index a24028f1..5396eb52 100644 --- a/client/src/__locales/tr.json +++ b/client/src/__locales/tr.json @@ -638,5 +638,8 @@ "safe_browsing": "Güvenli Gezinti", "served_from_cache": "{{value}} (önbellekten kullanıldı)", "form_error_password_length": "Parola en az {{value}} karakter uzunluğunda olmalıdır", - "anonymizer_notification": "<0>Not: IP anonimleştirme etkinleştirildi. Bunu <1>Genel ayarlardan devre dışı bırakabilirsiniz." + "anonymizer_notification": "<0>Not: IP anonimleştirme etkinleştirildi. Bunu <1>Genel ayarlardan devre dışı bırakabilirsiniz.", + "confirm_dns_cache_clear": "DNS önbelleğini temizlemek istediğinizden emin misiniz?", + "cache_cleared": "DNS önbelleği başarıyla temizlendi", + "clear_cache": "Önbelleği temizle" } diff --git a/client/src/__locales/uk.json b/client/src/__locales/uk.json index 1041ae8d..797c769b 100644 --- a/client/src/__locales/uk.json +++ b/client/src/__locales/uk.json @@ -393,7 +393,7 @@ "encryption_issuer": "Видавець", "encryption_hostnames": "Назви вузлів", "encryption_reset": "Ви впевнені, що хочете скинути налаштування шифрування?", - "encryption_warning": "Увага", + "encryption_warning": "Попередження", "topline_expiring_certificate": "Ваш сертифікат SSL скоро закінчиться. Оновіть <0>Налаштування шифрування.", "topline_expired_certificate": "Термін дії вашого сертифіката SSL закінчився. Оновіть <0>Налаштування шифрування.", "form_error_port_range": "Введіть значення порту в діапазоні 80−65535", @@ -638,5 +638,8 @@ "safe_browsing": "Безпечний перегляд", "served_from_cache": "{{value}} (отримано з кешу)", "form_error_password_length": "Пароль мусить мати принаймні {{value}} символів", - "anonymizer_notification": "<0>Примітка: IP-анонімізацію ввімкнено. Ви можете вимкнути його в <1>Загальні налаштування ." + "anonymizer_notification": "<0>Примітка: IP-анонімізацію ввімкнено. Ви можете вимкнути його в <1>Загальні налаштування .", + "confirm_dns_cache_clear": "Ви впевнені, що бажаєте очистити кеш DNS?", + "cache_cleared": "Кеш DNS успішно очищено", + "clear_cache": "Очистити кеш" } diff --git a/client/src/__locales/vi.json b/client/src/__locales/vi.json index 7674d372..174c57b2 100644 --- a/client/src/__locales/vi.json +++ b/client/src/__locales/vi.json @@ -638,5 +638,8 @@ "safe_browsing": "Duyệt web an toàn", "served_from_cache": "{{value}} (được phục vụ từ bộ nhớ cache)", "form_error_password_length": "Mật khẩu phải có ít nhất {{value}} ký tự", - "anonymizer_notification": "<0> Lưu ý: Tính năng ẩn danh IP được bật. Bạn có thể tắt nó trong <1> Cài đặt chung." + "anonymizer_notification": "<0> Lưu ý: Tính năng ẩn danh IP được bật. Bạn có thể tắt nó trong <1> Cài đặt chung.", + "confirm_dns_cache_clear": "Bạn có chắc chắn muốn xóa bộ đệm ẩn DNS không?", + "cache_cleared": "Đã xóa thành công bộ đệm DNS", + "clear_cache": "Xóa bộ nhớ cache" } diff --git a/client/src/__locales/zh-cn.json b/client/src/__locales/zh-cn.json index 5a19d904..65ddd0cc 100644 --- a/client/src/__locales/zh-cn.json +++ b/client/src/__locales/zh-cn.json @@ -638,5 +638,8 @@ "safe_browsing": "安全浏览", "served_from_cache": "{{value}}(由缓存提供)", "form_error_password_length": "密码必须至少有 {{value}} 个字符", - "anonymizer_notification": "<0>注意: IP 匿名化已启用。您可以在<1>常规设置中禁用它。" + "anonymizer_notification": "<0>注意: IP 匿名化已启用。您可以在<1>常规设置中禁用它。", + "confirm_dns_cache_clear": "您确定要清除 DNS 缓存吗?", + "cache_cleared": "已成功清除 DNS 缓存", + "clear_cache": "清除缓存" } diff --git a/client/src/__locales/zh-tw.json b/client/src/__locales/zh-tw.json index e1ae9b0a..da8f815f 100644 --- a/client/src/__locales/zh-tw.json +++ b/client/src/__locales/zh-tw.json @@ -638,5 +638,8 @@ "safe_browsing": "安全瀏覽", "served_from_cache": "{{value}} (由快取提供)", "form_error_password_length": "密碼必須為至少長 {{value}} 個字元", - "anonymizer_notification": "<0>注意:IP 匿名化被啟用。您可在<1>一般設定中禁用它。" + "anonymizer_notification": "<0>注意:IP 匿名化被啟用。您可在<1>一般設定中禁用它。", + "confirm_dns_cache_clear": "您確定您想要清除 DNS 快取嗎?", + "cache_cleared": "DNS 快取被成功地清除", + "clear_cache": "清除快取" } diff --git a/internal/aghnet/hostscontainer_windows.go b/internal/aghnet/hostscontainer_windows.go index 819ba5bb..7bbf7ac0 100644 --- a/internal/aghnet/hostscontainer_windows.go +++ b/internal/aghnet/hostscontainer_windows.go @@ -15,7 +15,7 @@ import ( func defaultHostsPaths() (paths []string) { sysDir, err := windows.GetSystemDirectory() if err != nil { - log.Error("getting system directory: %s", err) + log.Error("aghnet: getting system directory: %s", err) return []string{} } diff --git a/internal/aghos/os.go b/internal/aghos/os.go index 26201df2..67496c78 100644 --- a/internal/aghos/os.go +++ b/internal/aghos/os.go @@ -168,11 +168,11 @@ func IsOpenWrt() (ok bool) { return isOpenWrt() } -// RootDirFS returns the fs.FS rooted at the operating system's root. +// RootDirFS returns the [fs.FS] rooted at the operating system's root. On +// Windows it returns the fs.FS rooted at the volume of the system directory +// (usually, C:). func RootDirFS() (fsys fs.FS) { - // Use empty string since os.DirFS implicitly prepends a slash to it. This - // behavior is undocumented but it currently works. - return os.DirFS("") + return rootDirFS() } // NotifyReconfigureSignal notifies c on receiving reconfigure signals. diff --git a/internal/aghos/os_unix.go b/internal/aghos/os_unix.go index 7e04f0c0..6dcc5717 100644 --- a/internal/aghos/os_unix.go +++ b/internal/aghos/os_unix.go @@ -3,12 +3,17 @@ package aghos import ( + "io/fs" "os" "os/signal" "golang.org/x/sys/unix" ) +func rootDirFS() (fsys fs.FS) { + return os.DirFS("/") +} + func notifyReconfigureSignal(c chan<- os.Signal) { signal.Notify(c, unix.SIGHUP) } diff --git a/internal/aghos/os_windows.go b/internal/aghos/os_windows.go index 616fcf46..5568ef4c 100644 --- a/internal/aghos/os_windows.go +++ b/internal/aghos/os_windows.go @@ -3,13 +3,29 @@ package aghos import ( + "io/fs" "os" "os/signal" + "path/filepath" "syscall" + "github.com/AdguardTeam/golibs/log" "golang.org/x/sys/windows" ) +func rootDirFS() (fsys fs.FS) { + // TODO(a.garipov): Use a better way if golang/go#44279 is ever resolved. + sysDir, err := windows.GetSystemDirectory() + if err != nil { + log.Error("aghos: getting root filesystem: %s; using C:", err) + + // Assume that C: is the safe default. + return os.DirFS("C:") + } + + return os.DirFS(filepath.VolumeName(sysDir)) +} + func setRlimit(val uint64) (err error) { return Unsupported("setrlimit") } diff --git a/internal/filtering/servicelist.go b/internal/filtering/servicelist.go index f640097e..232976e8 100644 --- a/internal/filtering/servicelist.go +++ b/internal/filtering/servicelist.go @@ -251,14 +251,12 @@ var blockedServices = []blockedService{{ Name: "Mastodon", IconSVG: []byte(""), Rules: []string{ + "||aus.social^", "||awscommunity.social^", - "||colorid.es^", - "||dizl.de^", "||dju.social^", "||dresden.network^", "||fedibird.com^", "||fosstodon.org^", - "||freiburg.social^", "||glasgow.social^", "||h4.io^", "||hachyderm.io^", @@ -269,32 +267,30 @@ var blockedServices = []blockedService{{ "||ieji.de^", "||indieweb.social^", "||ioc.exchange^", - "||kfem.cat^", "||kolektiva.social^", - "||kurry.social^", - "||libretooth.gr^", "||livellosegreto.it^", "||lor.sh^", "||m.cmx.im^", - "||mast.dragon-fly.club^", + "||mas.to^", "||masto.ai^", "||masto.es^", "||masto.nobigtech.es^", "||masto.pt^", - "||mastodon-belgium.be^", "||mastodon.au^", "||mastodon.bida.im^", + "||mastodon.com.tr^", "||mastodon.eus^", "||mastodon.ie^", "||mastodon.iriseden.eu^", + "||mastodon.lol^", "||mastodon.nl^", "||mastodon.nu^", "||mastodon.nz^", "||mastodon.online^", "||mastodon.scot^", "||mastodon.sdf.org^", - "||mastodon.se^", "||mastodon.social^", + "||mastodon.top^", "||mastodon.uno^", "||mastodon.world^", "||mastodon.zaclys.com^", @@ -304,6 +300,8 @@ var blockedServices = []blockedService{{ "||mastodontti.fi^", "||mastouille.fr^", "||mathstodon.xyz^", + "||meow.social^", + "||metalhead.club^", "||mindly.social^", "||mstdn.ca^", "||mstdn.jp^", @@ -311,14 +309,13 @@ var blockedServices = []blockedService{{ "||mstdn.social^", "||muenchen.social^", "||muenster.im^", + "||nerdculture.de^", "||newsie.social^", "||noc.social^", "||norden.social^", "||nrw.social^", "||o3o.ca^", "||ohai.social^", - "||oslo.town^", - "||pettingzoo.co^", "||pewtix.com^", "||phpc.social^", "||piaille.fr^", @@ -329,18 +326,20 @@ var blockedServices = []blockedService{{ "||ruby.social^", "||ruhr.social^", "||sfba.social^", - "||snabelen.no^", + "||socel.net^", "||social.anoxinon.de^", "||social.cologne^", "||social.dev-wiki.de^", + "||social.linux.pizza^", "||social.politicaconciencia.org^", "||social.vivaldi.net^", - "||sociale.network^", + "||sself.co^", "||sueden.social^", "||techhub.social^", "||theblower.au^", "||tkz.one^", "||toot.aquilenet.fr^", + "||toot.community^", "||toot.funami.tech^", "||toot.wales^", "||troet.cafe^", @@ -350,6 +349,7 @@ var blockedServices = []blockedService{{ "||urbanists.social^", "||vocalodon.net^", "||wxw.moe^", + "||xarxa.cloud^", }, }, { ID: "minecraft",