| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | # erratic
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | *erratic* is a middleware useful for testing client behavior. It returns a static response to all | 
					
						
							| 
									
										
										
										
											2017-07-24 08:24:53 -07:00
										 |  |  | queries, but the responses can be delayed, dropped or truncated. | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | erratic { | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  |     drop [AMOUNT] | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  |     truncate [AMOUNT] | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  |     delay [AMOUNT [DURATION]] | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | * `drop`: drop 1 per **AMOUNT** of queries, the default is 2. | 
					
						
							|  |  |  | * `truncate`: truncate 1 per **AMOUNT** of queries, the default is 2. | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | * `delay`: delay 1 per **AMOUNT** of queries for **DURATION**, the default for **AMOUNT** is 2 and | 
					
						
							|  |  |  |   the default for **DURATION** is 100ms. | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | .:53 { | 
					
						
							|  |  |  |     erratic { | 
					
						
							|  |  |  |         drop 3 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | Or even shorter if the defaults suits you. Note this only drops queries, it does not delay them. | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     erratic | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | Delay 1 in 3 queries for 50ms | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     erratic { | 
					
						
							|  |  |  |         delay 3 50ms | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2017-01-06 09:42:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  | Delay 1 in 3 and truncate 1 in 5. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  | ~~~ txt | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     erratic { | 
					
						
							| 
									
										
										
										
											2017-04-16 07:49:13 +01:00
										 |  |  |         delay 3 5ms | 
					
						
							|  |  |  |         truncate 5 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Drop every second query. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | . { | 
					
						
							|  |  |  |     erratic { | 
					
						
							|  |  |  |         drop 2 | 
					
						
							|  |  |  |         truncate 2 | 
					
						
							| 
									
										
										
										
											2017-04-13 16:26:17 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ |