aboutsummaryrefslogtreecommitdiff
path: root/middleware/chaos
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-04-04 15:45:17 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-04-04 15:45:17 +0100
commit6445a3f2f019bd951ffc02b5ec86d73157f512c2 (patch)
tree412eb10f7ea2bd27a3592bd3ea6c4a3ce5b177e4 /middleware/chaos
parent45ac2dd0c007901ad7557c1f703bf3da87b26b45 (diff)
downloadcoredns-6445a3f2f019bd951ffc02b5ec86d73157f512c2.tar.gz
coredns-6445a3f2f019bd951ffc02b5ec86d73157f512c2.tar.zst
coredns-6445a3f2f019bd951ffc02b5ec86d73157f512c2.zip
Cleanup docs and the chaos middleware
Make the CH middleware actually work. Needs a bit of a hack to route the fake version.bind and friends zone to the correct handler. Fiddle with the order in directive.go so that CH queries get logged as well. Secondly add class rewriting to the rewrite middleware handler and also log the class by default.
Diffstat (limited to 'middleware/chaos')
-rw-r--r--middleware/chaos/README.md17
-rw-r--r--middleware/chaos/chaos.go3
2 files changed, 10 insertions, 10 deletions
diff --git a/middleware/chaos/README.md b/middleware/chaos/README.md
index 45d022fce..1720e918a 100644
--- a/middleware/chaos/README.md
+++ b/middleware/chaos/README.md
@@ -1,6 +1,7 @@
# chaos
-`chaos`
+The `chaos` middleware allows CoreDNS to response to TXT queries in CH class.
+Useful for retrieving version or author information from the server.
## Syntax
@@ -11,16 +12,12 @@ chaos [version] [authors...]
* `version` the version to return, defaults to CoreDNS.
* `authors` what authors to return. No default.
+Note this middleware can only be specified for a zone once. This is because it hijacks
+the zones `version.bind`, `version.server`, `authors.bind`, `hostname.bind` and
+`id.server`, which means it can only be routed to one middleware.
+
## Examples
~~~
-etcd {
- path /skydns
- endpoint endpoint...
- stubzones
-}
+chaos CoreDNS-001 "Miek Gieben" miek@miek.nl
~~~
-
-* `path` /skydns
-* `endpoint` endpoints...
-* `stubzones`
diff --git a/middleware/chaos/chaos.go b/middleware/chaos/chaos.go
index f668d9a4d..f1725495f 100644
--- a/middleware/chaos/chaos.go
+++ b/middleware/chaos/chaos.go
@@ -22,7 +22,10 @@ func (c Chaos) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (
if state.QClass() != dns.ClassCHAOS || state.QType() != dns.TypeTXT {
return c.Next.ServeDNS(ctx, w, r)
}
+
m := new(dns.Msg)
+ m.SetReply(r)
+
hdr := dns.RR_Header{Name: state.QName(), Rrtype: dns.TypeTXT, Class: dns.ClassCHAOS, Ttl: 0}
switch state.Name() {
default: