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:
parent
c6730945dc
commit
48f6517e1b
2 changed files with 13 additions and 5 deletions
17
bird/bird.go
17
bird/bird.go
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue