This should have everyone, but the process was quite manual. The rename
from middleware -> plugin also meant I had to do some extra digging on
who actually submitted the PR. I also double checked the current list of
people with commit access.
Every plugin now has an OWNERS, except *reverse*. I'll file a bug for
that.
* plugin/forward: add it
This moves coredns/forward into CoreDNS. Fixes as a few bugs, adds a
policy option and more tests to the plugin.
Update the documentation, test IPv6 address and add persistent tests.
* Always use random policy when spraying
* include scrub fix here as well
* use correct var name
* Code review
* go vet
* Move logging to metrcs
* Small readme updates
* Fix readme
This adds a generic way of start a check function to check a backend.
This package can be used to kick off healthchecks. The package makes
sure only 1 is run at any one time.
It should allow for:
See upstream error -> kick off healthcheck
and not to worry about overwhelming the upstream with a barrage of
queries.
* tune usage of var global, add limit to options
* update readme for minimal values
* useless change to quick-off codecov
* fix msgs for min values and tune the flag for end of reload usage, with a 'maybe' option
* adding UT for min values, adding MD5 of corefile on the log
* add new policy always_first to mimic windows dns resolvers
fill documentation, add UT and cleanup fmt
* change name of policy from always_first to first. Update docs
As plugin/proxy always returns compressed messages, it's important to
set this before calling Scrub(), as some messages will be unnecessarily
truncated otherwise.
HTTP healthchecking will be implicitely activated for proxy upstream
hosts, even if not configured. The README states that not using the
health_check directive will disable HTTP healthchecks though.
It seems to me that the availability of the HealthCheck.Path attribute
is used as indicator whether HTTP healthchecks should be used or not.
The normalizeCheckURL() function didn't check that attribute though,
always returning a CheckURL. This would increase the healthcheck failure
on every third failure in plugin/proxy, without any possibility for the
upstream host to be marked as healthy again. This would eventually
remove all upstream hosts from the serving pool.
With Go 1.9 you *can* include the std lib's context package and nothing
breaks. However we never officially made the move (and grpc also doesn't
ues the std lib's one).
Standardize all plugins on using the extern context package.
Fixes#1466
* plugin.md updates
Talk about return code, logging and other bits.
Also checked the code for fmt.Printf logging, there is none.
Fixes#1449#1450
* review
* more typos
* move flag blacklisting to main
Doing it in init() is the wrong place or something else changed. Doing
it in main() makes it easy to see *when* this happens.
* keep trapsignals
* plugin/forward: add out of tree forward plugin
This is a simpler proxy than *proxy*, include by default so it is easier
to switch (i.e. no recompile). It lacks features compared to proxy (did I
say it was simpler), but does cache udp and tcp connection, so it is
faster than proxy.
* Muck with the makefile
* Versioning forward now
* Fix truncation of messages longer than permitted by the client
CoreDNS currently doesn't respect the maximum response size advertised
by the client and returns the full answer on a message with the TC bit
set. This breaks client implementations which rely on DNS servers
respecting the advertised size limit, for example the Ruby stdlib
client. It also has negative network performance implications, as large
messages will be split up into multiple UDP packets, even though the
client will discard the truncated response anyway.
While RFC 2181 permits the response of partial RRSets, finding the
correct number of records fitting into the advertised response size is
non-trivial. As clients should ignore truncated messages, this change
simply removes the full RRSet on truncated messages.
* Remove incorrect etcd test assertion
If a client requests a TXT record larger than its advertised buffer
size, a DNS server should _not_ respond with the answer, but truncate
the message and set the TC bit, so that the client can retry using TCP.
Fix the error handling. Log when we have an error during any of the
transfer state. And if there isn't an error transfer the zones.
Also fix the tests in test/ so we, at least, check the initial transfer.
Update the docs to show more about how errors are handled.
Ref #1400
* plugin/dnssec: filter bitmap also for NXDOMAIN responses
We change nxdomain to nodata, so at the point when we receive the
reply it can be nxdomain or nodata. In both cases we should filter the
nsec bitmap.
Change the code and add explicit tests for this.
* More tests
* plugin/health: add lameduck mode
Add a way to configure lameduck more, i.e. set health to false, stop
polling plugins. Then wait for a duration before shutting down. As the
health middleware is configured early on in the plugin list, it will
hold up all other shutdown, meaning we still answer queries.
* Add New
* More tests
* golint
* remove confusing text