mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 02:33:14 -04:00
46 lines
974 B
Markdown
46 lines
974 B
Markdown
|
|
# 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.
|
||
|
|
|
||
|
|
~~~ txt
|
||
|
|
cancel [TIMEOUT]
|
||
|
|
~~~
|
||
|
|
|
||
|
|
* **TIMEOUT** allows setting a custom timeout. The default timeout is 5001 milliseconds (`5001 ms`)
|
||
|
|
|
||
|
|
## Examples
|
||
|
|
|
||
|
|
~~~ corefile
|
||
|
|
. {
|
||
|
|
cancel
|
||
|
|
whoami
|
||
|
|
}
|
||
|
|
~~~
|
||
|
|
|
||
|
|
Or with a custom timeout:
|
||
|
|
|
||
|
|
~~~ corefile
|
||
|
|
. {
|
||
|
|
cancel 1s
|
||
|
|
whoami
|
||
|
|
}
|
||
|
|
~~~
|
||
|
|
|
||
|
|
## Also See
|
||
|
|
|
||
|
|
The Go documentation for the context package.
|