mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -04:00 
			
		
		
		
	* core: hide registerHandler Remove RegisterHandler and just make it implicit when we look at the handler compilation step. * Rename GetHandler to just Handler Update callers and make auto check Hander in OnStartup. * Up test coverage in erratic * up test coverage
erratic
erratic is a middleware useful for testing client behavior. It returns a static response to all queries, but the responses can be delayed, dropped or truncated.
The erratic middleware 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).
erratic can also be used in conjunction with the autopath middleware. 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.
Examples
.:53 {
    erratic {
        drop 3
    }
}
Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them.
. {
    erratic
}
Delay 1 in 3 queries for 50ms
. {
    erratic {
        delay 3 50ms
    }
}
Delay 1 in 3 and truncate 1 in 5.
. {
    erratic {
        delay 3 5ms
        truncate 5
    }
}
Drop every second query.
. {
    erratic {
        drop 2
        truncate 2
    }
}