diff options
author | Pierre de La Morinerie <kemenaran@gmail.com> | 2018-02-06 10:57:34 +0530 |
---|---|---|
committer | Chris <ccbrown112@gmail.com> | 2018-02-05 23:27:34 -0600 |
commit | 034dbc07e3068c482e654b6a1a8fcbe4b01c44f3 (patch) | |
tree | 338bac5ef5795901f1c04718c0cc9b3330bdaa52 /app/server.go | |
parent | 323d717a402c4407ca14c8b94b5eebf861ccf44a (diff) | |
download | chat-034dbc07e3068c482e654b6a1a8fcbe4b01c44f3.tar.gz chat-034dbc07e3068c482e654b6a1a8fcbe4b01c44f3.tar.bz2 chat-034dbc07e3068c482e654b6a1a8fcbe4b01c44f3.zip |
handle RateLimiter initialization errors (#8199)
Previously, an error occuring in NewRateLimiter would return a nil
reference – which would be de-referenced just after, making the server
crash.
Diffstat (limited to 'app/server.go')
-rw-r--r-- | app/server.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/app/server.go b/app/server.go index 2a94bf2c7..1659908b6 100644 --- a/app/server.go +++ b/app/server.go @@ -124,9 +124,14 @@ func (a *App) StartServer() { if *a.Config().RateLimitSettings.Enable { l4g.Info(utils.T("api.server.start_server.rate.info")) - a.Srv.RateLimiter = NewRateLimiter(&a.Config().RateLimitSettings) + rateLimiter, err := NewRateLimiter(&a.Config().RateLimitSettings) + if err != nil { + l4g.Critical(err.Error()) + return + } - handler = a.Srv.RateLimiter.RateLimitHandler(handler) + a.Srv.RateLimiter = rateLimiter + handler = rateLimiter.RateLimitHandler(handler) } a.Srv.Server = &http.Server{ |