diff options
-rw-r--r-- | core/setup/file.go | 26 | ||||
-rw-r--r-- | core/setup/secondary.go | 23 | ||||
-rw-r--r-- | main.go | 2 | ||||
-rw-r--r-- | middleware/file/secondary.go | 18 | ||||
-rw-r--r-- | server/server.go | 1 |
5 files changed, 32 insertions, 38 deletions
diff --git a/core/setup/file.go b/core/setup/file.go index dc0d61e18..7f5d09534 100644 --- a/core/setup/file.go +++ b/core/setup/file.go @@ -13,7 +13,6 @@ func File(c *Controller) (middleware.Middleware, error) { if err != nil { return nil, err } - // Set start function is transfer is specified return func(next middleware.Handler) middleware.Handler { return file.File{Next: next, Zones: zones} @@ -32,22 +31,25 @@ func fileParse(c *Controller) (file.Zones, error) { } fileName := c.Val() - origin := c.ServerBlockHosts[c.ServerBlockHostIndex] - if c.NextArg() { - origin = c.Val() + origins := []string{c.ServerBlockHosts[c.ServerBlockHostIndex]} + args := c.RemainingArgs() + if len(args) > 0 { + origins = args } - origin = middleware.Host(origin).Normalize() - // TODO(miek): we should allow more. Issue #54. reader, err := os.Open(fileName) if err != nil { return file.Zones{}, err } - zone, err := file.Parse(reader, origin, fileName) - if err == nil { - z[origin] = zone + + for i, _ := range origins { + origins[i] = middleware.Host(origins[i]).Normalize() + zone, err := file.Parse(reader, origins[i], fileName) + if err == nil { + z[origins[i]] = zone + } + names = append(names, origins[i]) } - names = append(names, origin) for c.NextBlock() { t, _, e := parseTransfer(c) @@ -55,7 +57,9 @@ func fileParse(c *Controller) (file.Zones, error) { return file.Zones{}, e } // discard from, here, maybe check and show log when we do? - z[origin].TransferTo = append(z[origin].TransferTo, t) + for _, origin := range origins { + z[origin].TransferTo = append(z[origin].TransferTo, t) + } } } } diff --git a/core/setup/secondary.go b/core/setup/secondary.go index 3282f92b1..c7b5cc8ce 100644 --- a/core/setup/secondary.go +++ b/core/setup/secondary.go @@ -35,23 +35,26 @@ func secondaryParse(c *Controller) (file.Zones, error) { for c.Next() { if c.Val() == "secondary" { // secondary [origin] - origin := c.ServerBlockHosts[c.ServerBlockHostIndex] - if c.NextArg() { - origin = c.Val() + origins := []string{c.ServerBlockHosts[c.ServerBlockHostIndex]} + 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]) + names = append(names, origins[i]) } - // TODO(miek): we should allow more. Issue #54. - origin = middleware.Host(origin).Normalize() - - z[origin] = file.NewZone(origin) - names = append(names, origin) for c.NextBlock() { t, f, e := parseTransfer(c) if e != nil { return file.Zones{}, e } - z[origin].TransferTo = append(z[origin].TransferTo, t) - z[origin].TransferFrom = append(z[origin].TransferFrom, f) + for _, origin := range origins { + z[origin].TransferTo = append(z[origin].TransferTo, t) + z[origin].TransferFrom = append(z[origin].TransferFrom, f) + } } } } @@ -207,7 +207,7 @@ func setVersion() { } } -const appName = "Caddy" +const appName = "CoreDNS" // Flags that control program flow or startup var ( diff --git a/middleware/file/secondary.go b/middleware/file/secondary.go index 95c063a9b..b55052034 100644 --- a/middleware/file/secondary.go +++ b/middleware/file/secondary.go @@ -14,10 +14,6 @@ func (z *Zone) TransferIn() error { t := new(dns.Transfer) m := new(dns.Msg) m.SetAxfr(z.name) - /* - t.TsigSecret = map[string]string{"axfr.": "so6ZGir4GPAqINNh9U5c3A=="} - m.SetTsig("axfr.", dns.HmacMD5, 300, time.Now().Unix()) - */ var Err error Transfer: @@ -48,16 +44,6 @@ Transfer: } } } - return Err + return nil + return Err // ignore errors for now. TODO(miek) } - -/* - - 28800 ; refresh (8 hours) - 7200 ; retry (2 hours) - 604800 ; expire (1 week) - 3600 ; minimum (1 hour) -// Check SOA -// Just check every refresh hours, if fail set to retry until succeeds -// expire is need: to give SERVFAIL. -*/ diff --git a/server/server.go b/server/server.go index c274aca41..1c588b69f 100644 --- a/server/server.go +++ b/server/server.go @@ -273,6 +273,7 @@ func (s *Server) ServeDNS(w dns.ResponseWriter, r *dns.Msg) { b := make([]byte, len(q)) off, end := 0, false ctx := context.Background() + for { l := len(q[off:]) for i := 0; i < l; i++ { |