diff options
Diffstat (limited to 'middleware')
-rw-r--r-- | middleware/whoami/whoami.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/middleware/whoami/whoami.go b/middleware/whoami/whoami.go index 4117db35e..354bf6b4f 100644 --- a/middleware/whoami/whoami.go +++ b/middleware/whoami/whoami.go @@ -29,11 +29,11 @@ func (wh Whoami) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) switch state.Family() { case 1: rr = new(dns.A) - rr.(*dns.A).Hdr = dns.RR_Header{Name: state.QName(), Rrtype: state.QType(), Class: state.QClass()} + rr.(*dns.A).Hdr = dns.RR_Header{Name: state.QName(), Rrtype: dns.TypeA, Class: state.QClass()} rr.(*dns.A).A = net.ParseIP(ip).To4() case 2: rr = new(dns.AAAA) - rr.(*dns.AAAA).Hdr = dns.RR_Header{Name: state.QName(), Rrtype: state.QType(), Class: state.QClass()} + rr.(*dns.AAAA).Hdr = dns.RR_Header{Name: state.QName(), Rrtype: dns.TypeAAAA, Class: state.QClass()} rr.(*dns.AAAA).AAAA = net.ParseIP(ip) } @@ -41,10 +41,12 @@ func (wh Whoami) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) srv.Hdr = dns.RR_Header{Name: "_" + state.Proto() + "." + state.QName(), Rrtype: dns.TypeSRV, Class: state.QClass()} port, _ := strconv.Atoi(state.Port()) srv.Port = uint16(port) + srv.Target = "." - a.Extra = append(a.Extra, rr) - a.Extra = append(a.Extra, srv) + a.Extra = []dns.RR{rr, srv} + state.SizeAndDo(a) w.WriteMsg(a) + return 0, nil } |