coredns/plugin/cancel
Miek Gieben ba87a0e6ba
plugin/cancel: add context cancelation plugin (#2711)
* plugin/cancel: add context cancelation plugin

Per review comments on #2704, move this into a plugin that gets called.
Add the most minimal plugin, tests and documenation.

Signed-off-by: Miek Gieben <miek@miek.nl>

* plugin/cache: add timeout option

review feedback: add option to set custom timeout.

Signed-off-by: Miek Gieben <miek@miek.nl>

* spelling

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-03-29 19:40:23 +00:00
..
cancel.go plugin/cancel: add context cancelation plugin (#2711) 2019-03-29 19:40:23 +00:00
cancel_test.go plugin/cancel: add context cancelation plugin (#2711) 2019-03-29 19:40:23 +00:00
OWNERS plugin/cancel: add context cancelation plugin (#2711) 2019-03-29 19:40:23 +00:00
README.md plugin/cancel: add context cancelation plugin (#2711) 2019-03-29 19:40:23 +00:00
setup_test.go plugin/cancel: add context cancelation plugin (#2711) 2019-03-29 19:40:23 +00:00

cancel

Name

cancel - a plugin that cancels a request's context after 5001 milliseconds.

Description

The cancel plugin creates a canceling context for each request. It adds a timeout that gets triggered after 5001 milliseconds.

The 5001 number is chosen because the default timeout for DNS clients is 5 seconds, after that they give up.

A plugin interested in the cancellation status should call plugin.Done() on the context. If the context was canceled due to a timeout the plugin should not write anything back to the client and return a value indicating CoreDNS should not either; a zero return value should suffice for that.

cancel [TIMEOUT]
  • TIMEOUT allows setting a custom timeout. The default timeout is 5001 milliseconds (5001 ms)

Examples

. {
    cancel
    whoami
}

Or with a custom timeout:

. {
    cancel 1s
    whoami
}

Also See

The Go documentation for the context package.