mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-25 18:16:32 +00:00
Prefer admin defined DNS (#1399)
* Prefer admin defined DNS servers * Remove space * Update debug log * Test for customisation of manual DNS servers. * Warn that manual DNS will be removed on reset in v200 * Remove TODO * Format with black * Implement DNS fix for versions <194 * Insert missing docstring * Add missing docstring * Remove self.servers == DNS_SERVERS test
This commit is contained in:
parent
e4ac17fea6
commit
a481ad73f3
@ -113,6 +113,11 @@ class CoreDNS(JsonConfig, CoreSysAttributes):
|
|||||||
self.version = self.instance.version
|
self.version = self.instance.version
|
||||||
self.save_data()
|
self.save_data()
|
||||||
|
|
||||||
|
# Fix dns server handling before 194 / Cleanup with version 200
|
||||||
|
if DNS_SERVERS == self.servers:
|
||||||
|
self.servers.clear()
|
||||||
|
self.save_data()
|
||||||
|
|
||||||
# Start DNS forwarder
|
# Start DNS forwarder
|
||||||
self.sys_create_task(self.forwarder.start(self.sys_docker.network.dns))
|
self.sys_create_task(self.forwarder.start(self.sys_docker.network.dns))
|
||||||
|
|
||||||
@ -194,8 +199,10 @@ class CoreDNS(JsonConfig, CoreSysAttributes):
|
|||||||
raise CoreDNSError() from None
|
raise CoreDNSError() from None
|
||||||
|
|
||||||
async def reset(self) -> None:
|
async def reset(self) -> None:
|
||||||
"""Reset Config / Hosts."""
|
"""Reset DNS and hosts."""
|
||||||
self.servers = DNS_SERVERS
|
# Reset manually defined DNS
|
||||||
|
self.servers.clear()
|
||||||
|
self.save_data()
|
||||||
|
|
||||||
# Resets hosts
|
# Resets hosts
|
||||||
with suppress(OSError):
|
with suppress(OSError):
|
||||||
@ -215,15 +222,18 @@ class CoreDNS(JsonConfig, CoreSysAttributes):
|
|||||||
_LOGGER.error("Can't read coredns template file: %s", err)
|
_LOGGER.error("Can't read coredns template file: %s", err)
|
||||||
raise CoreDNSError() from None
|
raise CoreDNSError() from None
|
||||||
|
|
||||||
# Prepare DNS serverlist: Prio 1 Local, Prio 2 Manual, Prio 3 Fallback
|
# Prepare DNS serverlist: Prio 1 Manual, Prio 2 Local, Prio 3 Fallback
|
||||||
local_dns: List[str] = self.sys_host.network.dns_servers or ["dns://127.0.0.11"]
|
local_dns: List[str] = self.sys_host.network.dns_servers or ["dns://127.0.0.11"]
|
||||||
|
servers: List[str] = self.servers + local_dns + DNS_SERVERS
|
||||||
|
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
"local-dns = %s, config-dns = %s, backup-dns = %s",
|
"config-dns = %s, local-dns = %s , backup-dns = %s",
|
||||||
local_dns,
|
|
||||||
self.servers,
|
self.servers,
|
||||||
|
local_dns,
|
||||||
DNS_SERVERS,
|
DNS_SERVERS,
|
||||||
)
|
)
|
||||||
for server in local_dns + self.servers + DNS_SERVERS:
|
|
||||||
|
for server in servers:
|
||||||
try:
|
try:
|
||||||
dns_url(server)
|
dns_url(server)
|
||||||
if server not in dns_servers:
|
if server not in dns_servers:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user