Randomize the author list on request; keep the zowners.go file stable so
a 'go generate' remain stable.
chaos.Owners could potentially be a map and be randomized by ranging
over it, but this seems simpler and fewer lines of code.
Bit of Easter hacking; seems more fair to randomize this list.
Signed-off-by: Miek Gieben <miek@miek.nl>
* plugin/chaos: add default list of authors
Add a owners_generate.go that generates a Owners variables for use in
the chaos plugin.
Add a default list of authors in the authors.bind CH zone. When doing a
query this now returns:
~~~ sh
% dig authors.bind TXT CH
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5456
;; flags: qr rd; QUERY: 1, ANSWER: 22, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;authors.bind. CH TXT
;; ANSWER SECTION:
authors.bind. 0 CH TXT "bradbeam"
authors.bind. 0 CH TXT "chrisohaver"
authors.bind. 0 CH TXT "dilyevsky"
authors.bind. 0 CH TXT "ekleiner"
authors.bind. 0 CH TXT "fastest963"
authors.bind. 0 CH TXT "fturib"
authors.bind. 0 CH TXT "greenpau"
authors.bind. 0 CH TXT "grobie"
authors.bind. 0 CH TXT "inigohu"
authors.bind. 0 CH TXT "isolus"
authors.bind. 0 CH TXT "johnbelamaric"
authors.bind. 0 CH TXT "miekg"
authors.bind. 0 CH TXT "nchrisdk"
authors.bind. 0 CH TXT "nitisht"
authors.bind. 0 CH TXT "pmoroney"
authors.bind. 0 CH TXT "rajansandeep"
authors.bind. 0 CH TXT "rdrozhdzh"
authors.bind. 0 CH TXT "rtreffer"
authors.bind. 0 CH TXT "stp-ip"
authors.bind. 0 CH TXT "superq"
authors.bind. 0 CH TXT "varyoo"
authors.bind. 0 CH TXT "yongtang"
~~~
This was hard to do previously as we didn't hardcode this in the source,
but now with OWNERS files we can just generate this list.
Privacy wise this isn't worse than being listed in OWNERS file in the
first place. And it's a nice hat tip to the people making CoreDNS
better.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Sticklet bot comments
Signed-off-by: Miek Gieben <miek@miek.nl>
* Fix EDNS0 compliance
Do SizeAndDo in the server (ScrubWriter) and remove all uses of this
from the plugins. Also *always* do it. This is to get into compliance
for https://dnsflagday.net/.
The pkg/edns0 now exports the EDNS0 options we understand; this is
exported to allow plugins add things there. The *rewrite* plugin used
this to add custom EDNS0 option codes that the server needs to
understand.
This also needs a new release of miekg/dns because it triggered a
race-condition that was basicly there forever.
See:
* https://github.com/miekg/dns/issues/857
* https://github.com/miekg/dns/pull/859
Running a test instance and pointing the https://ednscomp.isc.org/ednscomp
to it shows the tests are now fixed:
~~~
EDNS Compliance Tester
Checking: 'miek.nl' as at 2018-12-01T17:53:15Z
miek.nl. @147.75.204.203 (drone.coredns.io.): dns=ok edns=ok edns1=ok edns@512=ok ednsopt=ok edns1opt=ok do=ok ednsflags=ok docookie=ok edns512tcp=ok optlist=ok
miek.nl. @2604:1380:2002:a000::1 (drone.coredns.io.): dns=ok edns=ok edns1=ok edns@512=ok ednsopt=ok edns1opt=ok do=ok ednsflags=ok docookie=ok edns512tcp=ok optlist=ok
All Ok
Codes
ok - test passed.
~~~
Signed-off-by: Miek Gieben <miek@miek.nl>
Signed-off-by: Miek Gieben <miek@miek.nl>
* typos in comments
Signed-off-by: Miek Gieben <miek@miek.nl>
* global: move to context
Move from golang.org/x/net/context to std lib's context.
Change done with:
for i in $(grep -l '/context' **/*.go); do sed -e 's|golang.org/x/net/context|context|' -i $i; echo $i; done
for i in **/*.go; do goimports -w $i; done
* drop from dns.pb.go as well
* Rename middleware to plugin
first pass; mostly used 'sed', few spots where I manually changed
text.
This still builds a coredns binary.
* fmt error
* Rename AddMiddleware to AddPlugin
* Readd AddMiddleware to remain backwards compat