Pull request 2235: 7069-fix-blocked-services

Updates #7069.

Squashed commit of the following:

commit 0f87493966124af4fa4b28eb1f67281343dd8242
Merge: 87f06b864 28a6c24db
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Tue Jun 18 14:09:18 2024 +0300

    Merge branch 'master' into 7069-fix-blocked-services

commit 87f06b86432bba4d2e2583010784746452b7690f
Merge: c2440752c 66877c92d
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Tue Jun 18 13:47:28 2024 +0300

    Merge branch 'master' into 7069-fix-blocked-services

commit c2440752c8
Merge: 17a9c14e2 1c82be295
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Jun 17 18:42:48 2024 +0300

    Merge branch 'master' into 7069-fix-blocked-services

commit 17a9c14e29
Merge: 11160bc62 bed86d57f
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Tue Jun 11 13:41:00 2024 +0300

    Merge branch 'master' into 7069-fix-blocked-services

commit 11160bc62b
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Tue Jun 11 13:36:56 2024 +0300

    all: imp docs

commit 491287164d
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Jun 10 14:03:22 2024 +0300

    home: imp code

commit 0caf8b1579
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Jun 10 13:35:54 2024 +0300

    all: upd chlog

commit 46f793b259
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Jun 10 13:27:22 2024 +0300

    home: fix blocked services
This commit is contained in:
Stanislav Chzhen 2024-06-18 14:27:25 +03:00
parent 28a6c24db2
commit 08d863dd3a
5 changed files with 15 additions and 3 deletions

View File

@ -51,10 +51,14 @@ NOTE: Add new changes BELOW THIS COMMENT.
### Fixed ### Fixed
- Panic caused by missing user-specific blocked services object in configuration
file ([#7069]).
- Tracking `/etc/hosts` file changes causing panics within particular - Tracking `/etc/hosts` file changes causing panics within particular
filesystems on start ([#7076]). filesystems on start ([#7076]).
[#7053]: https://github.com/AdguardTeam/AdGuardHome/issues/7053 [#7053]: https://github.com/AdguardTeam/AdGuardHome/issues/7053
[#7069]: https://github.com/AdguardTeam/AdGuardHome/issues/7069
[#7076]: https://github.com/AdguardTeam/AdGuardHome/issues/7076
[install-script]: https://github.com/AdguardTeam/AdGuardHome/?tab=readme-ov-file#automated-install-linux-and-mac [install-script]: https://github.com/AdguardTeam/AdGuardHome/?tab=readme-ov-file#automated-install-linux-and-mac

View File

@ -66,7 +66,8 @@ type Persistent struct {
SafeSearch filtering.SafeSearch SafeSearch filtering.SafeSearch
// BlockedServices is the configuration of blocked services of a client. // BlockedServices is the configuration of blocked services of a client. It
// must not be nil after initialization.
BlockedServices *filtering.BlockedServices BlockedServices *filtering.BlockedServices
Name string Name string

View File

@ -16,6 +16,7 @@ import (
"github.com/AdguardTeam/AdGuardHome/internal/dnsforward" "github.com/AdguardTeam/AdGuardHome/internal/dnsforward"
"github.com/AdguardTeam/AdGuardHome/internal/filtering" "github.com/AdguardTeam/AdGuardHome/internal/filtering"
"github.com/AdguardTeam/AdGuardHome/internal/querylog" "github.com/AdguardTeam/AdGuardHome/internal/querylog"
"github.com/AdguardTeam/AdGuardHome/internal/schedule"
"github.com/AdguardTeam/AdGuardHome/internal/whois" "github.com/AdguardTeam/AdGuardHome/internal/whois"
"github.com/AdguardTeam/dnsproxy/proxy" "github.com/AdguardTeam/dnsproxy/proxy"
"github.com/AdguardTeam/dnsproxy/upstream" "github.com/AdguardTeam/dnsproxy/upstream"
@ -261,6 +262,12 @@ func (o *clientObject) toPersistent(
} }
} }
if o.BlockedServices == nil {
o.BlockedServices = &filtering.BlockedServices{
Schedule: schedule.EmptyWeekly(),
}
}
err = o.BlockedServices.Validate() err = o.BlockedServices.Validate()
if err != nil { if err != nil {
return nil, fmt.Errorf("init blocked services %q: %w", cli.Name, err) return nil, fmt.Errorf("init blocked services %q: %w", cli.Name, err)

View File

@ -267,7 +267,7 @@ func copyBlockedServices(
var weekly *schedule.Weekly var weekly *schedule.Weekly
if sch != nil { if sch != nil {
weekly = sch.Clone() weekly = sch.Clone()
} else if prev != nil && prev.BlockedServices != nil { } else if prev != nil {
weekly = prev.BlockedServices.Schedule.Clone() weekly = prev.BlockedServices.Schedule.Clone()
} else { } else {
weekly = schedule.EmptyWeekly() weekly = schedule.EmptyWeekly()

View File

@ -49,7 +49,7 @@ func newPersistentClient(name string) (c *client.Persistent) {
Name: name, Name: name,
UID: client.MustNewUID(), UID: client.MustNewUID(),
BlockedServices: &filtering.BlockedServices{ BlockedServices: &filtering.BlockedServices{
Schedule: &schedule.Weekly{}, Schedule: schedule.EmptyWeekly(),
}, },
} }
} }