From df097341c3f643ef4c2d67a5ae2158ddfe707b03 Mon Sep 17 00:00:00 2001 From: Stanislav Chzhen Date: Fri, 4 Oct 2024 18:10:56 +0300 Subject: [PATCH] Pull request 2287: 7315-fix-client-storage-panic Closes #7315. Squashed commit of the following: commit 94c8473a14d98b45b5086de432bc68dd55eb654b Author: Stanislav Chzhen Date: Thu Oct 3 19:09:23 2024 +0300 all: upd chlog commit 82b772b1dde19277832d44f9b22c47d22f90bf7e Merge: e7f34cc43 4919630cc Author: Stanislav Chzhen Date: Thu Oct 3 19:00:53 2024 +0300 Merge branch 'master' into 7315-fix-client-storage-panic commit e7f34cc435f53b80aca328a62e27c6aaa8fe6462 Author: Stanislav Chzhen Date: Thu Oct 3 17:55:39 2024 +0300 home: fix client storage panic --- CHANGELOG.md | 7 +++++++ internal/home/clients.go | 6 +++--- internal/home/home.go | 16 ++++++++-------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6e3a093..70133cb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,13 @@ See also the [v0.107.54 GitHub milestone][ms-v0.107.54]. NOTE: Add new changes BELOW THIS COMMENT. --> +### Fixed + +- Missing runtime clients with information from the system hosts file on first + AdGuard Home start ([#7315]). + +[#7315]: https://github.com/AdguardTeam/AdGuardHome/issues/7315 + diff --git a/internal/home/clients.go b/internal/home/clients.go index 5a30d6bc..eef52834 100644 --- a/internal/home/clients.go +++ b/internal/home/clients.go @@ -92,9 +92,9 @@ func (clients *clientsContainer) Init( // TODO(e.burkov): The option should probably be returned, since hosts file // currently used not only for clients' information enrichment, but also in // the filtering module and upstream addresses resolution. - var hosts client.HostsContainer = etcHosts - if !config.Clients.Sources.HostsFile { - hosts = nil + var hosts client.HostsContainer + if config.Clients.Sources.HostsFile && etcHosts != nil { + hosts = etcHosts } clients.storage, err = client.NewStorage(&client.StorageConfig{ diff --git a/internal/home/home.go b/internal/home/home.go index df4e4296..56718394 100644 --- a/internal/home/home.go +++ b/internal/home/home.go @@ -148,6 +148,14 @@ func setupContext(opts options) (err error) { Context.tlsRoots = aghtls.SystemRootCAs() Context.mux = http.NewServeMux() + if !opts.noEtcHosts { + err = setupHostsContainer() + if err != nil { + // Don't wrap the error, because it's informative enough as is. + return err + } + } + if Context.firstRun { log.Info("This is the first time AdGuard Home is launched") checkPermissions() @@ -168,14 +176,6 @@ func setupContext(opts options) (err error) { os.Exit(0) } - if !opts.noEtcHosts { - err = setupHostsContainer() - if err != nil { - // Don't wrap the error, because it's informative enough as is. - return err - } - } - return nil }