diff options
author | Christopher Speller <crspeller@gmail.com> | 2016-09-26 12:56:12 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2016-09-26 09:56:12 -0700 |
commit | 7fcc004beb9f6ef022f755e8e2f2a958c976c637 (patch) | |
tree | dc8a34d4bc57878361307d92c8032b6bd776d40a /model | |
parent | dff985a92402319c16ad599e635b367fb123d60b (diff) | |
download | chat-7fcc004beb9f6ef022f755e8e2f2a958c976c637.tar.gz chat-7fcc004beb9f6ef022f755e8e2f2a958c976c637.tar.bz2 chat-7fcc004beb9f6ef022f755e8e2f2a958c976c637.zip |
Modifications to rate limiting settings. (#4091)
Diffstat (limited to 'model')
-rw-r--r-- | model/config.go | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/model/config.go b/model/config.go index 13135f9ae..514260d09 100644 --- a/model/config.go +++ b/model/config.go @@ -177,11 +177,12 @@ type EmailSettings struct { } type RateLimitSettings struct { - EnableRateLimiter bool - PerSec int - MemoryStoreSize int - VaryByRemoteAddr bool - VaryByHeader string + Enable *bool + PerSec int + MaxBurst *int + MemoryStoreSize int + VaryByRemoteAddr bool + VaryByHeader string } type PrivacySettings struct { @@ -894,6 +895,16 @@ func (o *Config) SetDefaults() { *o.NativeAppSettings.IosAppDownloadLink = "https://about.mattermost.com/mattermost-ios-app/" } + if o.RateLimitSettings.Enable == nil { + o.RateLimitSettings.Enable = new(bool) + *o.RateLimitSettings.Enable = false + } + + if o.RateLimitSettings.MaxBurst == nil { + o.RateLimitSettings.MaxBurst = new(int) + *o.RateLimitSettings.MaxBurst = 100 + } + o.defaultWebrtcSettings() } @@ -1097,6 +1108,10 @@ func (o *Config) IsValid() *AppError { return NewLocAppError("Config.IsValid", "model.config.is_valid.sitename_length.app_error", map[string]interface{}{"MaxLength": SITENAME_MAX_LENGTH}, "") } + if *o.RateLimitSettings.MaxBurst <= 0 { + return NewLocAppError("Config.IsValid", "model.config.is_valid.max_burst.app_error", nil, "") + } + if err := o.isValidWebrtcSettings(); err != nil { return err } |