middleware/whoami: add (#264)

Add a new middleware that tells you who you are; IP, port and transport
is echoed back.

Also some various cleanup and documentation improvements while at it:

* ResponseWriter: improve the documentation of these helper functions.
* And add an NextHandler for use in tests. Make chaos_test.go and
* whoam_test.go use it.
This commit is contained in:
Miek Gieben
2016-09-17 17:09:05 +01:00
committed by GitHub
parent ed907d3327
commit 30fd224504
10 changed files with 219 additions and 10 deletions

View File

@@ -0,0 +1,38 @@
# whoami
whoami returns your local IP address, port and transport used. Your local IP address is returned in
the additional section as either an A or AAAA record.
The port and transport are included in the additional section as a SRV record, transport can be
"tcp" or "udp".
~~~ txt
._<transport>.qname. 0 IN SRV 0 0 <port> .
~~~
The *whoami* middleware will respond to every A or AAAA query, regardless of the query name.
## Syntax
~~~ txt
whoami
~~~
## Examples
~~~ txt
.:53 {
whoami
}
~~~
When queried for "example.org A", CoreDNS will respond with:
~~~ txt
;; QUESTION SECTION:
;example.org. IN A
;; ADDITIONAL SECTION:
example.org. 0 IN A 10.240.0.1
_udp.example.org. 0 IN SRV 0 0 40212
~~~