mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	* healhcheck: various cleanups Network wasn't used. IgnorePaths wasn't used. Move checkdown function to common function shared between proxy protocols. And some naming fixed. Also reset the Fails on a succesful healthcheck back to 0. remove newlines from log * compile * fix test
		
			
				
	
	
		
			31 lines
		
	
	
		
			574 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			574 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package proxy
 | |
| 
 | |
| import (
 | |
| 	"sync/atomic"
 | |
| 	"time"
 | |
| 
 | |
| 	"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 {
 | |
| 
 | |
| 		down := false
 | |
| 
 | |
| 		uh.Lock()
 | |
| 		until := uh.OkUntil
 | |
| 		uh.Unlock()
 | |
| 
 | |
| 		if !until.IsZero() && time.Now().After(until) {
 | |
| 			down = true
 | |
| 		}
 | |
| 
 | |
| 		fails := atomic.LoadInt32(&uh.Fails)
 | |
| 		if fails >= upstream.MaxFails && upstream.MaxFails != 0 {
 | |
| 			down = true
 | |
| 		}
 | |
| 		return down
 | |
| 	}
 | |
| }
 |