mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -04:00 
			
		
		
		
	Prevent fail counter of a proxy overflows (#5990)
Signed-off-by: vanceli <vanceli@tencent.com> Signed-off-by: Vance Li <vncl@YingyingM1.local> Co-authored-by: vanceli <vanceli@tencent.com>
This commit is contained in:
		| @@ -3,6 +3,7 @@ package proxy | ||||
| import ( | ||||
| 	"context" | ||||
| 	"crypto/tls" | ||||
| 	"math" | ||||
| 	"testing" | ||||
| 	"time" | ||||
|  | ||||
| @@ -97,3 +98,33 @@ func TestProtocolSelection(t *testing.T) { | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestProxyIncrementFails(t *testing.T) { | ||||
| 	var testCases = []struct { | ||||
| 		name        string | ||||
| 		fails       uint32 | ||||
| 		expectFails uint32 | ||||
| 	}{ | ||||
| 		{ | ||||
| 			name:        "increment fails counter overflows", | ||||
| 			fails:       math.MaxUint32, | ||||
| 			expectFails: math.MaxUint32, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name:        "increment fails counter", | ||||
| 			fails:       0, | ||||
| 			expectFails: 1, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	for _, tc := range testCases { | ||||
| 		t.Run(tc.name, func(t *testing.T) { | ||||
| 			p := NewProxy("bad_address", transport.DNS) | ||||
| 			p.fails = tc.fails | ||||
| 			p.incrementFails() | ||||
| 			if p.fails != tc.expectFails { | ||||
| 				t.Errorf("Expected fails to be %d, got %d", tc.expectFails, p.fails) | ||||
| 			} | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user