Pull request 2287: 7315-fix-client-storage-panic

Closes #7315.

Squashed commit of the following:

commit 94c8473a14
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Oct 3 19:09:23 2024 +0300

    all: upd chlog

commit 82b772b1dd
Merge: e7f34cc43 4919630cc
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Oct 3 19:00:53 2024 +0300

    Merge branch 'master' into 7315-fix-client-storage-panic

commit e7f34cc435
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Oct 3 17:55:39 2024 +0300

    home: fix client storage panic
This commit is contained in:
Stanislav Chzhen 2024-10-04 18:10:56 +03:00
parent 4919630ccc
commit df097341c3
3 changed files with 18 additions and 11 deletions

View File

@ -25,6 +25,13 @@ See also the [v0.107.54 GitHub milestone][ms-v0.107.54].
NOTE: Add new changes BELOW THIS COMMENT. 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
<!-- <!--
NOTE: Add new changes ABOVE THIS COMMENT. NOTE: Add new changes ABOVE THIS COMMENT.
--> -->

View File

@ -92,9 +92,9 @@ func (clients *clientsContainer) Init(
// TODO(e.burkov): The option should probably be returned, since hosts file // TODO(e.burkov): The option should probably be returned, since hosts file
// currently used not only for clients' information enrichment, but also in // currently used not only for clients' information enrichment, but also in
// the filtering module and upstream addresses resolution. // the filtering module and upstream addresses resolution.
var hosts client.HostsContainer = etcHosts var hosts client.HostsContainer
if !config.Clients.Sources.HostsFile { if config.Clients.Sources.HostsFile && etcHosts != nil {
hosts = nil hosts = etcHosts
} }
clients.storage, err = client.NewStorage(&client.StorageConfig{ clients.storage, err = client.NewStorage(&client.StorageConfig{

View File

@ -148,6 +148,14 @@ func setupContext(opts options) (err error) {
Context.tlsRoots = aghtls.SystemRootCAs() Context.tlsRoots = aghtls.SystemRootCAs()
Context.mux = http.NewServeMux() 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 { if Context.firstRun {
log.Info("This is the first time AdGuard Home is launched") log.Info("This is the first time AdGuard Home is launched")
checkPermissions() checkPermissions()
@ -168,14 +176,6 @@ func setupContext(opts options) (err error) {
os.Exit(0) 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 return nil
} }