plugin/erratic: doc and zone transfer (#3340)

Fix the documentation, remove autopath entry and fix the transfer by
copying some bits from the file plugin.

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben
2019-10-02 07:22:26 +01:00
committed by GitHub
parent fa6718d026
commit 64f0345e63
2 changed files with 15 additions and 12 deletions

View File

@@ -6,15 +6,12 @@
## Description
*erratic* returns a static response to all queries, but the responses can be delayed, dropped or truncated.
The *erratic* plugin will respond to every A or AAAA query. For any other type it will return
a SERVFAIL response. The reply for A will return 192.0.2.53 (see [RFC
5737](https://tools.ietf.org/html/rfc5737),
for AAAA it returns 2001:DB8::53 (see [RFC 3849](https://tools.ietf.org/html/rfc3849)) and for an
AXFR request it will respond with a small zone transfer.
*erratic* can also be used in conjunction with the *autopath* plugin. This is mostly to aid in
testing.
*erratic* returns a static response to all queries, but the responses can be delayed,
dropped or truncated. The *erratic* plugin will respond to every A or AAAA query. For
any other type it will return a SERVFAIL response (except AXFR). The reply for A will return
192.0.2.53 ([RFC 5737](https://tools.ietf.org/html/rfc5737)), for AAAA it returns 2001:DB8::53 ([RFC
3849](https://tools.ietf.org/html/rfc3849)). For an AXFR request it will respond with a small
zone transfer.
## Syntax
@@ -47,7 +44,7 @@ example.org {
}
~~~
Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.
Or even shorter if the defaults suit you. Note this only drops queries, it does not delay them.
~~~ corefile
example.org {

View File

@@ -2,6 +2,7 @@ package erratic
import (
"strings"
"sync"
"github.com/coredns/coredns/plugin/test"
"github.com/coredns/coredns/request"
@@ -46,6 +47,11 @@ func xfr(state request.Request, truncate bool) {
close(ch)
}()
wg := new(sync.WaitGroup)
wg.Add(1)
go func() {
tr.Out(state.W, state.Req, ch)
state.W.Hijack()
wg.Done()
}()
wg.Wait()
}