1 package dns
2
3
4
5 func (u *Msg) NameUsed(rr []RR) {
6 if u.Answer == nil {
7 u.Answer = make([]RR, 0, len(rr))
8 }
9 for _, r := range rr {
10 u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassANY}})
11 }
12 }
13
14
15
16 func (u *Msg) NameNotUsed(rr []RR) {
17 if u.Answer == nil {
18 u.Answer = make([]RR, 0, len(rr))
19 }
20 for _, r := range rr {
21 u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassNONE}})
22 }
23 }
24
25
26
27 func (u *Msg) Used(rr []RR) {
28 if len(u.Question) == 0 {
29 panic("dns: empty question section")
30 }
31 if u.Answer == nil {
32 u.Answer = make([]RR, 0, len(rr))
33 }
34 for _, r := range rr {
35 hdr := r.Header()
36 hdr.Class = u.Question[0].Qclass
37 hdr.Ttl = 0
38 u.Answer = append(u.Answer, r)
39 }
40 }
41
42
43
44 func (u *Msg) RRsetUsed(rr []RR) {
45 if u.Answer == nil {
46 u.Answer = make([]RR, 0, len(rr))
47 }
48 for _, r := range rr {
49 h := r.Header()
50 u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: h.Name, Ttl: 0, Rrtype: h.Rrtype, Class: ClassANY}})
51 }
52 }
53
54
55
56 func (u *Msg) RRsetNotUsed(rr []RR) {
57 if u.Answer == nil {
58 u.Answer = make([]RR, 0, len(rr))
59 }
60 for _, r := range rr {
61 h := r.Header()
62 u.Answer = append(u.Answer, &ANY{Hdr: RR_Header{Name: h.Name, Ttl: 0, Rrtype: h.Rrtype, Class: ClassNONE}})
63 }
64 }
65
66
67 func (u *Msg) Insert(rr []RR) {
68 if len(u.Question) == 0 {
69 panic("dns: empty question section")
70 }
71 if u.Ns == nil {
72 u.Ns = make([]RR, 0, len(rr))
73 }
74 for _, r := range rr {
75 r.Header().Class = u.Question[0].Qclass
76 u.Ns = append(u.Ns, r)
77 }
78 }
79
80
81 func (u *Msg) RemoveRRset(rr []RR) {
82 if u.Ns == nil {
83 u.Ns = make([]RR, 0, len(rr))
84 }
85 for _, r := range rr {
86 h := r.Header()
87 u.Ns = append(u.Ns, &ANY{Hdr: RR_Header{Name: h.Name, Ttl: 0, Rrtype: h.Rrtype, Class: ClassANY}})
88 }
89 }
90
91
92 func (u *Msg) RemoveName(rr []RR) {
93 if u.Ns == nil {
94 u.Ns = make([]RR, 0, len(rr))
95 }
96 for _, r := range rr {
97 u.Ns = append(u.Ns, &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: TypeANY, Class: ClassANY}})
98 }
99 }
100
101
102 func (u *Msg) Remove(rr []RR) {
103 if u.Ns == nil {
104 u.Ns = make([]RR, 0, len(rr))
105 }
106 for _, r := range rr {
107 h := r.Header()
108 h.Class = ClassNONE
109 h.Ttl = 0
110 u.Ns = append(u.Ns, r)
111 }
112 }
113
View as plain text