summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-09-26 12:56:12 -0400
committerCorey Hulen <corey@hulen.com>2016-09-26 09:56:12 -0700
commit7fcc004beb9f6ef022f755e8e2f2a958c976c637 (patch)
treedc8a34d4bc57878361307d92c8032b6bd776d40a /model
parentdff985a92402319c16ad599e635b367fb123d60b (diff)
downloadchat-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.go25
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
}