mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-27 10:47:35 +00:00
net/dns: move mutex before the field it guards
And some misc doc tweaks for idiomatic Go style. Updates #cleanup Change-Id: I3ca45f78aaca037f433538b847fd6a9571a2d918 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
94defc4056
commit
9766f0e110
@ -59,11 +59,10 @@ type Manager struct {
|
|||||||
knobs *controlknobs.Knobs // or nil
|
knobs *controlknobs.Knobs // or nil
|
||||||
goos string // if empty, gets set to runtime.GOOS
|
goos string // if empty, gets set to runtime.GOOS
|
||||||
|
|
||||||
// The last configuration we successfully compiled. Set to nil if
|
mu sync.Mutex // guards following
|
||||||
// there was any failure applying the last configuration
|
// config is the last configuration we successfully compiled or nil if there
|
||||||
|
// was any failure applying the last configuration.
|
||||||
config *Config
|
config *Config
|
||||||
// Must be held when accessing/setting config.
|
|
||||||
mu sync.Mutex
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewManagers created a new manager from the given config.
|
// NewManagers created a new manager from the given config.
|
||||||
@ -123,8 +122,9 @@ func (m *Manager) Set(cfg Config) error {
|
|||||||
return m.setLocked(cfg)
|
return m.setLocked(cfg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the DNS configuration.
|
// setLocked sets the DNS configuration.
|
||||||
// m.mu must be held
|
//
|
||||||
|
// m.mu must be held.
|
||||||
func (m *Manager) setLocked(cfg Config) error {
|
func (m *Manager) setLocked(cfg Config) error {
|
||||||
syncs.AssertLocked(&m.mu)
|
syncs.AssertLocked(&m.mu)
|
||||||
|
|
||||||
|
@ -212,7 +212,9 @@ type forwarder struct {
|
|||||||
// resolver lookup.
|
// resolver lookup.
|
||||||
cloudHostFallback []resolverAndDelay
|
cloudHostFallback []resolverAndDelay
|
||||||
|
|
||||||
// To be called when a SERVFAIL is returned due to missing upstream resolvers.
|
// missingUpstreamRecovery, if non-nil, is set called when a SERVFAIL is
|
||||||
|
// returned due to missing upstream resolvers.
|
||||||
|
//
|
||||||
// This should attempt to properly (re)set the upstream resolvers.
|
// This should attempt to properly (re)set the upstream resolvers.
|
||||||
missingUpstreamRecovery func()
|
missingUpstreamRecovery func()
|
||||||
}
|
}
|
||||||
|
@ -244,9 +244,11 @@ func New(logf logger.Logf, linkSel ForwardLinkSelector, dialer *tsdial.Dialer, k
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by the forwarder on SERVFAIL due to missing upstream resolvers
|
// SetMissingUpstreamRecovery sets a callback to be called upon encountering
|
||||||
// The func passed in here should attempt to re-query for those resolvers,
|
// a SERVFAIL due to missing upstream resolvers.
|
||||||
// repair, or recover
|
//
|
||||||
|
// This call should only happen before the resolver is used. It is not safe
|
||||||
|
// for concurrent use.
|
||||||
func (r *Resolver) SetMissingUpstreamRecovery(f func()) {
|
func (r *Resolver) SetMissingUpstreamRecovery(f func()) {
|
||||||
r.forwarder.missingUpstreamRecovery = f
|
r.forwarder.missingUpstreamRecovery = f
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user