Abstract the caddy call and make it simpler. See #3261 for some part of the discussion. Go from: ~~~ go func init() { caddy.RegisterPlugin("any", caddy.Plugin{ ServerType: "dns", Action: setup, }) } ~~~ To: ~~~ go func init() { plugin.Register("any", setup) } ~~~ This requires some external documents in coredns.io to be updated as well; the old way still works, so it's backwards compatible. Signed-off-by: Miek Gieben <miek@miek.nl>
erratic
Name
erratic - a plugin useful for testing client behavior.
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, for AAAA it returns 2001:DB8::53 (see RFC 3849) 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.
Syntax
erratic {
drop [AMOUNT]
truncate [AMOUNT]
delay [AMOUNT [DURATION]]
}
drop: drop 1 per AMOUNT of queries, the default is 2.truncate: truncate 1 per AMOUNT of queries, the default is 2.delay: delay 1 per AMOUNT of queries for DURATION, the default for AMOUNT is 2 and the default for DURATION is 100ms.
In case of a zone transfer and truncate the final SOA record isn't added to the response.
Ready
This plugin reports readiness to the ready plugin.
Examples
example.org {
erratic {
drop 3
}
}
Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.
example.org {
erratic
}
Delay 1 in 3 queries for 50ms
example.org {
erratic {
delay 3 50ms
}
}
Delay 1 in 3 and truncate 1 in 5.
example.org {
erratic {
delay 3 5ms
truncate 5
}
}
Drop every second query.
example.org {
erratic {
drop 2
truncate 2
}
}