(maxRequestNum int, duration int64, mark string)
| 73 | } |
| 74 | |
| 75 | func rateLimitFactory(maxRequestNum int, duration int64, mark string) func(c *gin.Context) { |
| 76 | if common.RedisEnabled { |
| 77 | return func(c *gin.Context) { |
| 78 | redisRateLimiter(c, maxRequestNum, duration, mark) |
| 79 | } |
| 80 | } else { |
| 81 | // It's safe to call multi times. |
| 82 | inMemoryRateLimiter.Init(common.RateLimitKeyExpirationDuration) |
| 83 | return func(c *gin.Context) { |
| 84 | memoryRateLimiter(c, maxRequestNum, duration, mark) |
| 85 | } |
| 86 | } |
| 87 | } |
| 88 | |
| 89 | func GlobalWebRateLimit() func(c *gin.Context) { |
| 90 | if common.GlobalWebRateLimitEnable { |
no test coverage detected