1
0
Fork 0
mirror of https://github.com/alice-lg/birdwatcher.git synced 2025-03-09 00:00:05 +01:00

made rate limit config synchronized

This commit is contained in:
hellerve 2016-12-13 11:01:28 +01:00
parent c6730945dc
commit 48f6517e1b
2 changed files with 13 additions and 5 deletions

View file

@ -9,7 +9,10 @@ import (
var ClientConf BirdConfig
var StatusConf StatusConfig
var rateLimitConf RateLimitConfig
var RateLimitConf struct {
sync.Mutex
Conf RateLimitConfig
}
var Cache = struct {
sync.RWMutex
@ -41,21 +44,25 @@ func InstallRateLimitReset() {
c := time.Tick(time.Second)
for _ = range c {
rateLimitConf.Reqs = 0
RateLimitConf.Lock()
RateLimitConf.Conf.Reqs = 0
RateLimitConf.Unlock()
}
}()
}
func checkRateLimit() bool {
if !rateLimitConf.Enabled {
if !RateLimitConf.Conf.Enabled {
return true
}
if rateLimitConf.Reqs > rateLimitConf.Max {
if RateLimitConf.Conf.Reqs > RateLimitConf.Conf.Max {
return false
}
rateLimitConf.Reqs += 1
RateLimitConf.Lock()
RateLimitConf.Conf.Reqs += 1
RateLimitConf.Unlock()
return true
}

View file

@ -116,6 +116,7 @@ func main() {
// Configuration
bird.ClientConf = birdConf
bird.StatusConf = conf.Status
bird.RateLimitConf.Conf = conf.Ratelimit
endpoints.Conf = conf.Server
// Make server