mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 16:24:19 -04:00
plugin/file: load secondary zones lazily on startup (#2944)
This fixes a long standing bug: fixes: #1609 Load secondary zones in a go-routine; this required another mutex to protect some fields; I think those were needded anyway because a transfer can also happen when we're running; we just didn't have a test for that situation. The test had to be changed to wait for the transfer to happen at this is async now. Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
@@ -21,7 +21,8 @@ type Zone struct {
|
||||
origLen int
|
||||
file string
|
||||
*tree.Tree
|
||||
Apex Apex
|
||||
Apex
|
||||
apexMu sync.RWMutex
|
||||
|
||||
TransferTo []string
|
||||
StartupOnce sync.Once
|
||||
@@ -32,7 +33,7 @@ type Zone struct {
|
||||
LastReloaded time.Time
|
||||
reloadMu sync.RWMutex
|
||||
reloadShutdown chan bool
|
||||
Upstream *upstream.Upstream // Upstream for looking up external names during the resolution process
|
||||
Upstream *upstream.Upstream // Upstream for looking up external names during the resolution process.
|
||||
}
|
||||
|
||||
// Apex contains the apex records of a zone: SOA, NS and their potential signatures.
|
||||
@@ -55,7 +56,6 @@ func NewZone(name, file string) *Zone {
|
||||
LastReloaded: time.Now(),
|
||||
}
|
||||
*z.Expired = false
|
||||
|
||||
return z
|
||||
}
|
||||
|
||||
@@ -186,11 +186,6 @@ func (z *Zone) All() []dns.RR {
|
||||
return append([]dns.RR{z.Apex.SOA}, records...)
|
||||
}
|
||||
|
||||
// Print prints the zone's tree to stdout.
|
||||
func (z *Zone) Print() {
|
||||
z.Tree.Print()
|
||||
}
|
||||
|
||||
// NameFromRight returns the labels from the right, staring with the
|
||||
// origin and then i labels extra. When we are overshooting the name
|
||||
// the returned boolean is set to true.
|
||||
|
||||
Reference in New Issue
Block a user