aboutsummaryrefslogtreecommitdiff
path: root/middleware/whoami/whoami.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/whoami/whoami.go')
-rw-r--r--middleware/whoami/whoami.go57
1 files changed, 0 insertions, 57 deletions
diff --git a/middleware/whoami/whoami.go b/middleware/whoami/whoami.go
deleted file mode 100644
index 6b5ed332a..000000000
--- a/middleware/whoami/whoami.go
+++ /dev/null
@@ -1,57 +0,0 @@
-// Package whoami implements a middleware that returns details about the resolving
-// querying it.
-package whoami
-
-import (
- "net"
- "strconv"
-
- "github.com/coredns/coredns/request"
-
- "github.com/miekg/dns"
- "golang.org/x/net/context"
-)
-
-// Whoami is a middleware that returns your IP address, port and the protocol used for connecting
-// to CoreDNS.
-type Whoami struct{}
-
-// ServeDNS implements the middleware.Handler interface.
-func (wh Whoami) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
- state := request.Request{W: w, Req: r}
-
- a := new(dns.Msg)
- a.SetReply(r)
- a.Compress = true
- a.Authoritative = true
-
- ip := state.IP()
- var rr dns.RR
-
- switch state.Family() {
- case 1:
- rr = new(dns.A)
- 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: dns.TypeAAAA, Class: state.QClass()}
- rr.(*dns.AAAA).AAAA = net.ParseIP(ip)
- }
-
- srv := new(dns.SRV)
- 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 = []dns.RR{rr, srv}
-
- state.SizeAndDo(a)
- w.WriteMsg(a)
-
- return 0, nil
-}
-
-// Name implements the Handler interface.
-func (wh Whoami) Name() string { return "whoami" }