| 
									
										
										
										
											2017-09-24 19:37:43 +01:00
										 |  |  | package proxy
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  | 	"sync/atomic"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/coredns/coredns/plugin/pkg/healthcheck"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Default CheckDown functions for use in the proxy plugin.
 | 
					
						
							|  |  |  | var checkDownFunc = func(upstream *staticUpstream) healthcheck.UpstreamHostDownFunc {
 | 
					
						
							|  |  |  | 	return func(uh *healthcheck.UpstreamHost) bool {
 | 
					
						
							|  |  |  | 		fails := atomic.LoadInt32(&uh.Fails)
 | 
					
						
							|  |  |  | 		if fails >= upstream.MaxFails && upstream.MaxFails != 0 {
 | 
					
						
							| 
									
										
										
										
											2017-10-15 19:38:39 +02:00
										 |  |  | 			return true
 | 
					
						
							| 
									
										
										
										
											2017-09-24 19:37:43 +01:00
										 |  |  | 		}
 | 
					
						
							| 
									
										
										
										
											2017-10-15 19:38:39 +02:00
										 |  |  | 		return false
 | 
					
						
							| 
									
										
										
										
											2017-09-24 19:37:43 +01:00
										 |  |  | 	}
 | 
					
						
							|  |  |  | }
 |