diff options
author | 2016-09-17 17:50:16 +0100 | |
---|---|---|
committer | 2016-09-17 17:50:16 +0100 | |
commit | 80b22a50713e87370c0b489feeeca481d0a159d8 (patch) | |
tree | 2d28d2ce25e22697f51c5f2e7ce80432cfe57cd0 /middleware | |
parent | 30fd224504d7e6fcfa7da027d62d2105ecb6f0c5 (diff) | |
download | coredns-80b22a50713e87370c0b489feeeca481d0a159d8.tar.gz coredns-80b22a50713e87370c0b489feeeca481d0a159d8.tar.zst coredns-80b22a50713e87370c0b489feeeca481d0a159d8.zip |
middleware/whois: hook it up
Hook it up properly by adding it to the directives list. And add
the Target to the SRV record to actually return valid DNS messages.
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 } |