From 70dfc1f5186f8376a666283de13ce78274b67b75 Mon Sep 17 00:00:00 2001
From: Matt Joiner <anacrolix@gmail.com>
Date: Sat, 16 Jun 2018 16:37:13 +1000
Subject: [PATCH] Allow disabling accept limiting and modify some constants

---
 client.go | 8 +++++---
 config.go | 2 ++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/client.go b/client.go
index 8811063a..ce92a35b 100644
--- a/client.go
+++ b/client.go
@@ -1270,7 +1270,7 @@ func (cl *Client) acceptLimitClearer() {
 		select {
 		case <-cl.closed.LockedChan(&cl.mu):
 			return
-		case <-time.After(15 * time.Minute):
+		case <-time.After(5 * time.Minute):
 			cl.mu.Lock()
 			cl.clearAcceptLimits()
 			cl.mu.Unlock()
@@ -1279,6 +1279,8 @@ func (cl *Client) acceptLimitClearer() {
 }
 
 func (cl *Client) rateLimitAccept(ip net.IP) bool {
-	// return true
-	return cl.acceptLimiter[ipStr(maskIpForAcceptLimiting(ip).String())] >= 10
+	if cl.config.DisableAcceptRateLimiting {
+		return false
+	}
+	return cl.acceptLimiter[ipStr(maskIpForAcceptLimiting(ip).String())] >= 3
 }
diff --git a/config.go b/config.go
index 25dee996..f438cbce 100644
--- a/config.go
+++ b/config.go
@@ -108,6 +108,8 @@ type ClientConfig struct {
 
 	PublicIp4 net.IP
 	PublicIp6 net.IP
+
+	DisableAcceptRateLimiting bool
 }
 
 func (cfg *ClientConfig) SetListenAddr(addr string) *ClientConfig {
-- 
2.51.0