aboutsummaryrefslogtreecommitdiff
path: root/middleware
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-09-17 17:50:16 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-09-17 17:50:16 +0100
commit80b22a50713e87370c0b489feeeca481d0a159d8 (patch)
tree2d28d2ce25e22697f51c5f2e7ce80432cfe57cd0 /middleware
parent30fd224504d7e6fcfa7da027d62d2105ecb6f0c5 (diff)
downloadcoredns-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.go10
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
}