diff options
Diffstat (limited to 'dns/types.go')
-rw-r--r-- | dns/types.go | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/dns/types.go b/dns/types.go index aa5112b..4a02d2c 100644 --- a/dns/types.go +++ b/dns/types.go | |||
@@ -4,22 +4,25 @@ import ( | |||
4 | "fmt" | 4 | "fmt" |
5 | _ "net" | 5 | _ "net" |
6 | 6 | ||
7 | "code.crute.me/mcrute/go_ddns_manager/bind" | ||
8 | "github.com/miekg/dns" | 7 | "github.com/miekg/dns" |
9 | ) | 8 | ) |
10 | 9 | ||
11 | //go:generate go run ../generate_dns_types.go | 10 | //go:generate go run ../generate_dns_types.go |
12 | 11 | ||
13 | func makeHeader(name string, zone *bind.Zone, t uint16, ttl int) dns.RR_Header { | 12 | type NamedZone interface { |
13 | ZoneName() string | ||
14 | } | ||
15 | |||
16 | func makeHeader(name string, zone NamedZone, t uint16, ttl int) dns.RR_Header { | ||
14 | return dns.RR_Header{ | 17 | return dns.RR_Header{ |
15 | Name: fmt.Sprintf("%s.%s", name, zone.Name), | 18 | Name: fmt.Sprintf("%s.%s", name, zone.ZoneName()), |
16 | Rrtype: t, | 19 | Rrtype: t, |
17 | Class: dns.ClassINET, | 20 | Class: dns.ClassINET, |
18 | Ttl: uint32(ttl), | 21 | Ttl: uint32(ttl), |
19 | } | 22 | } |
20 | } | 23 | } |
21 | 24 | ||
22 | func toRRSet(z *bind.Zone, rr ...RR) []dns.RR { | 25 | func toRRSet(z NamedZone, rr ...RR) []dns.RR { |
23 | o := []dns.RR{} | 26 | o := []dns.RR{} |
24 | for _, v := range rr { | 27 | for _, v := range rr { |
25 | o = append(o, v.ToDNS(z)) | 28 | o = append(o, v.ToDNS(z)) |
@@ -28,7 +31,7 @@ func toRRSet(z *bind.Zone, rr ...RR) []dns.RR { | |||
28 | } | 31 | } |
29 | 32 | ||
30 | type RR interface { | 33 | type RR interface { |
31 | ToDNS(*bind.Zone) dns.RR | 34 | ToDNS(NamedZone) dns.RR |
32 | FromDNS(rr dns.RR) error | 35 | FromDNS(rr dns.RR) error |
33 | MarshalJSON() ([]byte, error) | 36 | MarshalJSON() ([]byte, error) |
34 | UnmarshalJSON(data []byte) error | 37 | UnmarshalJSON(data []byte) error |