aboutsummaryrefslogtreecommitdiff
path: root/core/setup/secondary.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/setup/secondary.go')
-rw-r--r--core/setup/secondary.go71
1 files changed, 0 insertions, 71 deletions
diff --git a/core/setup/secondary.go b/core/setup/secondary.go
deleted file mode 100644
index e1f54a651..000000000
--- a/core/setup/secondary.go
+++ /dev/null
@@ -1,71 +0,0 @@
-package setup
-
-import (
- "github.com/miekg/coredns/middleware"
- "github.com/miekg/coredns/middleware/file"
- "github.com/miekg/coredns/middleware/secondary"
-)
-
-// Secondary sets up the secondary middleware.
-func Secondary(c *Controller) (middleware.Middleware, error) {
- zones, err := secondaryParse(c)
- if err != nil {
- return nil, err
- }
-
- // Add startup functions to retrieve the zone and keep it up to date.
- for _, n := range zones.Names {
- if len(zones.Z[n].TransferFrom) > 0 {
- c.Startup = append(c.Startup, func() error {
- zones.Z[n].StartupOnce.Do(func() {
- zones.Z[n].TransferIn()
- go func() {
- zones.Z[n].Update()
- }()
- })
- return nil
- })
- }
- }
-
- return func(next middleware.Handler) middleware.Handler {
- return secondary.Secondary{file.File{Next: next, Zones: zones}}
- }, nil
-
-}
-
-func secondaryParse(c *Controller) (file.Zones, error) {
- z := make(map[string]*file.Zone)
- names := []string{}
- for c.Next() {
- if c.Val() == "secondary" {
- // secondary [origin]
- origins := c.ServerBlockHosts
- args := c.RemainingArgs()
- if len(args) > 0 {
- origins = args
- }
- for i, _ := range origins {
- origins[i] = middleware.Host(origins[i]).Normalize()
- z[origins[i]] = file.NewZone(origins[i], "stdin")
- names = append(names, origins[i])
- }
-
- for c.NextBlock() {
- t, f, e := transferParse(c)
- if e != nil {
- return file.Zones{}, e
- }
- for _, origin := range origins {
- if t != nil {
- z[origin].TransferTo = append(z[origin].TransferTo, t...)
- }
- if f != nil {
- z[origin].TransferFrom = append(z[origin].TransferFrom, f...)
- }
- }
- }
- }
- }
- return file.Zones{Z: z, Names: names}, nil
-}