diff --git a/profile/active.go b/profile/active.go index 9eb83470..cd1b1f56 100644 --- a/profile/active.go +++ b/profile/active.go @@ -59,8 +59,7 @@ func addActiveProfile(profile *Profile) { defer activeProfilesLock.Unlock() // Mark any previous profile as outdated. - previous, ok := activeProfiles[profile.ScopedID()] - if ok { + if previous, ok := activeProfiles[profile.ScopedID()]; ok { previous.outdated.Set() } diff --git a/profile/get.go b/profile/get.go index e83cc3d1..7e1e88be 100644 --- a/profile/get.go +++ b/profile/get.go @@ -30,7 +30,9 @@ var getProfileSingleInflight singleflight.Group // GetProfile fetches a profile. This function ensures that the loaded profile // is shared among all callers. You must always supply both the scopedID and -// linkedPath parameters whenever available. +// linkedPath parameters whenever available. The linkedPath is used as the key +// for locking concurrent requests, so it must be supplied if available. +// If linkedPath is not supplied, source and id make up the key instead. func GetProfile(source profileSource, id, linkedPath string) ( //nolint:gocognit profile *Profile, err error, diff --git a/resolver/api.go b/resolver/api.go index 69700c48..761e808a 100644 --- a/resolver/api.go +++ b/resolver/api.go @@ -37,9 +37,9 @@ func exportDNSResolvers(*api.Request) (interface{}, error) { resolversLock.RLock() defer resolversLock.RUnlock() - export := make([]*resolverExport, 0, len(globalResolvers)) + export := make([]resolverExport, 0, len(globalResolvers)) for _, r := range globalResolvers { - export = append(export, &resolverExport{ + export = append(export, resolverExport{ Resolver: r, Failing: r.Conn.IsFailing(), }) diff --git a/resolver/namerecord.go b/resolver/namerecord.go index 08319353..42a33323 100644 --- a/resolver/namerecord.go +++ b/resolver/namerecord.go @@ -86,8 +86,8 @@ func GetNameRecord(domain, question string) (*NameRecord, error) { return new, nil } -// DeleteNameRecord deletes a NameRecord from the database. -func DeleteNameRecord(domain, question string) error { +// ResetCachedRecord deletes a NameRecord from the cache database. +func ResetCachedRecord(domain, question string) error { // In order to properly delete an entry, we must also clear the caches. recordDatabase.FlushCache() recordDatabase.ClearCache() diff --git a/resolver/resolve.go b/resolver/resolve.go index 631bcb03..11ed1590 100644 --- a/resolver/resolve.go +++ b/resolver/resolve.go @@ -190,7 +190,7 @@ func checkCache(ctx context.Context, q *Query) *RRCache { // Check if we want to reset the cache for this entry. if shouldResetCache(q) { - err := DeleteNameRecord(q.FQDN, q.QType.String()) + err := ResetCachedRecord(q.FQDN, q.QType.String()) switch { case err == nil: log.Tracer(ctx).Tracef("resolver: cache for %s%s was reset", q.FQDN, q.QType) diff --git a/resolver/scopes.go b/resolver/scopes.go index f0102b17..1cf43ef7 100644 --- a/resolver/scopes.go +++ b/resolver/scopes.go @@ -179,7 +179,6 @@ var ( errInsecureProtocol = errors.New("insecure protocols disabled") errAssignedServer = errors.New("assigned (dhcp) nameservers disabled") errMulticastDNS = errors.New("multicast DNS disabled") - errSkip = errors.New("this fqdn cannot resolved by this resolver") ) func (q *Query) checkCompliance() error {