Just create the sha256 inline so we know there are there.
Add a 'version' target in Makefile.release that prints the version so we
can double check that easily in the release script.
Signed-off-by: Miek Gieben <miek@miek.nl>
Every plugin needs to deal with EDNS0 and should call Scrub to make a
message fit the client's buffer. Move this functionality into the server
and wrapping the ResponseWriter into a ScrubWriter that handles these
bits for us. Result:
Less code and faster, because multiple chained plugins could all be
calling scrub and SizeAndDo - now there is just one place.
Most tests in file/* and dnssec/* needed adjusting because in those unit
tests you don't see OPT RRs anymore. The DNSSEC signer was also looking
at the returned OPT RR to see if it needed to sign - as those are now
added by the server (and thus later), this needed to change slightly.
Scrub itself still exist (for backward compat reasons), but has been
made a noop. Scrub has been renamed to scrub as it should not be used by
external plugins.
Fixes: #2010
Signed-off-by: Miek Gieben <miek@miek.nl>
* Bump version to 1.2.2
Release 1.2.2
Signed-off-by: Miek Gieben <miek@miek.nl>
* Fix filename to what we upload
With ls dir/* the pathname returned are diff. then we with ls dir, fix
how curl is called.
Signed-off-by: Miek Gieben <miek@miek.nl>
For the 1.2.1 release we didn't upload the sha256 files. I've added
an echo, but some testing suggests that the files are created, so the
problem lays somewhere else.
Add a new upload section that sets the content type correctly and POST
the files as text/plain.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Create test to verify correct listener behavior
* Create Unset function to remove todo items
* Reset address for prometheus listener before restarting
* Add inline documentation for Unset function
* Make shutdownTimeout a constant and change to five seconds
* Revert ForEach behavior in uniq package
The exit code wasn't properly acted upon in the makefile.
Make filename-hyphen actually return an non-zero exit code.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Add regression test for broken DNS truncation
With the latest changes to the implementation, request.Scrub() returns
invalid response messages which are larger than the advertised buffer
size. This commit adds a failing test for that.
* Add benchmark for response truncation
* request: re-adjust size for edns0 RR
Cherry-picked the test and benchmark commits from #1962 and make the
failing test not fail, by adding minimal fix in request.go.
This makes size 12 bytes smaller if we need to add back the OPT RR in
the message.
Closes: #1962
Signed-off-by: Miek Gieben <miek@miek.nl>
* Scrub: correctly check for EDNS0, not only Do
Make Scrub check for EDNS0, not only if the Do bit is set.
Signed-off-by: Miek Gieben <miek@miek.nl>
This downloads gometalinter (which is now breaking in the CI tests).
Also the goimports target is run with ||true, so nothing will break
if this flags anything (done because of gofmt changes in between
release).
Probably I will setup something to use github's linter API:
https://github.com/markstory/lint-review
Signed-off-by: Miek Gieben <miek@miek.nl>
The Onstartup loop wouldn't call break after the first success, thereby
sending the query multiple times and halting the process.
Some small other optimizations as well.
Signed-off-by: Miek Gieben <miek@miek.nl>
Generate the sha256 sum of each asset. These should all be automatically
be uploaded in the github-push target.
Signed-off-by: Miek Gieben <miek@miek.nl>
* New plugin: loop
Add a plugin that detects loops. It does this by sending an unique query
to our selves. If we see the query more than twice we stop the process.
If there isn't a loop, the plugin disables it self and becomes a noop
plugin.
Signed-off-by: Miek Gieben <miek@miek.nl>
* bliep
Signed-off-by: Miek Gieben <miek@miek.nl>
* plugin/log: add log.Fatal[f]
Add log.Fatal(f) to mimic more of the log package. The first and only
use is in the (new) loop plugin.
Signed-off-by: Miek Gieben <miek@miek.nl>
* plugin/erratic: add axfr support
Add support for axfr. This to fix and test long standing axfr issues
that are hard to test if we don't support it directly in coredns.
The most intriguing feature is withholding the last SOA from a response
so the client needs to wait; drop (no reply) and delay is also
supported. All TTLs are set to zero.
Add simple tests that checks if first record is a SOA.
Signed-off-by: Miek Gieben <miek@miek.nl>
* more test coverage
Signed-off-by: Miek Gieben <miek@miek.nl>
* Clean up tests logging
This cleans up the travis logs so you can see the failures better.
Older tests in tests/ would call log.SetOutput(ioutil.Discard) in
a haphazard way. This add log.Discard and put an `init` function in each
package's dir (no way to do this globally). The cleanup in tests/ is
clear.
All plugins also got this init function to have some uniformity and kill
any (future) logging there in the tests as well.
There is a one-off in pkg/healthcheck because that does log.
Signed-off-by: Miek Gieben <miek@miek.nl>
* bring back original log_test.go
Signed-off-by: Miek Gieben <miek@miek.nl>
* suppress logging here as well
Signed-off-by: Miek Gieben <miek@miek.nl>
Log and returns an error when the name rewrite creates a name that is
illegal. Add test in name_test.go to see if an error is returned.
Possible followup could be the only check this if a name-rewrite is
done.
Fixes: #1638
Signed-off-by: Miek Gieben <miek@miek.nl>
Releasing 1.2.0 uncovered some rough edges that need to be documented.
Also fix github-push target and docker login.
Signed-off-by: Miek Gieben <miek@miek.nl>
* release: automate the release
This PR aims to various pieces into place so we can automate the coredns
release. It needs the script from coredns/release to be installed. Dreck
is to be setup as described in coredns/release/README.md
The release-coredns script can be tested and allows for other branches
than master to be test.
This PR also features some cleanup in the Makefile.release so we don't
call the godep target for each linux release - this speeds it up for
some bit.
Manually running ./release-coredns -t auto-release builds the artifects
for this release, but (of course) doesn't upload anything yet.
Add /release to the OWNERS and allow command to be executed (this still
needs to be tested).
Signed-off-by: Miek Gieben <miek@miek.nl>
* that makefile target doesnt exist anymore
Signed-off-by: Miek Gieben <miek@miek.nl>
* test release for now
Signed-off-by: Miek Gieben <miek@miek.nl>
* Slightly better output
Signed-off-by: Miek Gieben <miek@miek.nl>
* remove again
Signed-off-by: Miek Gieben <miek@miek.nl>
* plugin/forward: add HealthChecker interface
Make the HealthChecker interface and morph the current DNS health
checker into that interface.
Remove all whole bunch of method on Forward that didn't make sense.
This is done in preparation of adding a DoH client to forward - which
requires a completely different healthcheck implementation (and more,
but lets start here)
Signed-off-by: Miek Gieben <miek@miek.nl>
* Use protocol
Signed-off-by: Miek Gieben <miek@miek.nl>
* Dial doesnt need to be method an Forward either
Signed-off-by: Miek Gieben <miek@miek.nl>
* Address comments
Address various comments on the PR.
Signed-off-by: Miek Gieben <miek@miek.nl>
Prevent future; "remove trailing whitespace" PR, but adding a simple
presubmit that checks for this.
This presubmit flagged quite some offenders, remove all trailing
whitespace from. Apart from that there aren't any other changes.
Signed-off-by: Miek Gieben <miek@miek.nl>