summaryrefslogtreecommitdiff
path: root/addr.go
blob: 080f11b5c510ef0d71aae7ebb919c9f8f714f9ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main

import (
	"net"
	"github.com/miekg/dns"
)

type Addr struct {
	IP		net.IP
}

func (addr Addr) buildRR(name string, ttl int) dns.RR {
	if ip4 := addr.IP.To4(); ip4 != nil {
		return &dns.A{
			Hdr: dns.RR_Header{Name: name, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: uint32(ttl)},
			A:	 ip4,
		}
	}

	if ip6 := addr.IP.To16(); ip6 != nil {
		return &dns.AAAA{
			Hdr:  dns.RR_Header{Name: name, Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: uint32(ttl)},
			AAAA: ip6,
		}
	}

	return nil
}