aboutsummaryrefslogtreecommitdiff
path: root/middleware/file/secondary.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-04-03 09:02:34 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-04-03 09:02:34 +0100
commitf58f1e4285ab9725a317ac7b38f5905fb497c7b0 (patch)
treeb44eead7ca9f687bea1813cfe7247123d8929026 /middleware/file/secondary.go
parent7fb959470e95517967c4f0bcf85f1adf9a77a42f (diff)
downloadcoredns-f58f1e4285ab9725a317ac7b38f5905fb497c7b0.tar.gz
coredns-f58f1e4285ab9725a317ac7b38f5905fb497c7b0.tar.zst
coredns-f58f1e4285ab9725a317ac7b38f5905fb497c7b0.zip
Add secondary support
Allow specifying a primary server and retrieve the zone's content. Add tests and an Expired bool to zone struct, to stop server zones that are expired. The zone is retrieved on Startup, no updates of changed content are done. We also don't respond to notifies yet.
Diffstat (limited to 'middleware/file/secondary.go')
-rw-r--r--middleware/file/secondary.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/middleware/file/secondary.go b/middleware/file/secondary.go
new file mode 100644
index 000000000..95c063a9b
--- /dev/null
+++ b/middleware/file/secondary.go
@@ -0,0 +1,63 @@
+package file
+
+import (
+ "log"
+
+ "github.com/miekg/dns"
+)
+
+// TransferIn retrieves the zone from the masters, parses it and sets it live.
+func (z *Zone) TransferIn() error {
+ if len(z.TransferFrom) == 0 {
+ return nil
+ }
+ 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:
+ for _, tr := range z.TransferFrom {
+ c, err := t.In(m, tr)
+ if err != nil {
+ log.Printf("[ERROR] failed to setup transfer %s with %s: %v", z.name, z.TransferFrom[0], err)
+ Err = err
+ continue Transfer
+ }
+ for env := range c {
+ if env.Error != nil {
+ log.Printf("[ERROR] failed to parse transfer %s: %v", z.name, env.Error)
+ Err = env.Error
+ continue Transfer
+ }
+ for _, rr := range env.RR {
+ if rr.Header().Rrtype == dns.TypeSOA {
+ z.SOA = rr.(*dns.SOA)
+ continue
+ }
+ if rr.Header().Rrtype == dns.TypeRRSIG {
+ if x, ok := rr.(*dns.RRSIG); ok && x.TypeCovered == dns.TypeSOA {
+ z.SIG = append(z.SIG, x)
+ }
+ }
+ z.Insert(rr)
+ }
+ }
+ }
+ return Err
+}
+
+/*
+
+ 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.
+*/
n> Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/examples/docs/src/pages/en/example.md (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-11-27Remove support for simple objects in endpoints (#9181)Gravatar Bjorn Lu 56-529/+206
2023-11-28Remove shiki lang path property support (#9196)Gravatar Bjorn Lu 7-427/+22
2023-11-28Remove deprecated features from Astro 3.0 (#9168)Gravatar Bjorn Lu 47-398/+95
2023-11-28Remove deprecated markdown-remark APIs (#9182)Gravatar Bjorn Lu 4-59/+7
2023-11-27[ci] release (#9180)astro@3.6.1Gravatar Houston (Bot) 32-65/+63
2023-11-24Remove vercel deprecated analytics option (#9184)Gravatar Bjorn Lu 3-30/+12
2023-11-24[ci] formatGravatar Guspan Tanadi 1-2/+1
2023-11-24style: highlight markdown Tip Note section CONTRIBUTING (#9123)Gravatar Guspan Tanadi 1-5/+7
2023-11-23fix scroll restoration issue on webKit browsers (#9186)Gravatar Martin Trapp 2-1/+7
2023-11-23fix(middleware): rename internal middleware id (#9173)Gravatar Arsh 2-1/+6
2023-11-23fix: Changelog formatting for 3.6.0 View Transition events (#9176)Gravatar Martin Trapp 1-3/+3
2023-11-22[ci] formatGravatar Eva Decker 1-3/+3
2023-11-22Fix View Transitions code block formatting (#9174)Gravatar Eva Decker 1-3/+3
2023-11-22Rename entryPoint to entrypoint (#9161)Gravatar Bjorn Lu 14-26/+38
2023-11-22Fix esbuild warning for local dev (#9160)Gravatar Bjorn Lu 1-1/+1
2023-11-22[ci] release (#9165)astro@3.6.0Gravatar Houston (Bot) 34-90/+83