mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -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. |