summaryrefslogtreecommitdiffstats
path: root/app/web_conn.go
diff options
context:
space:
mode:
authorChris <ccbrown112@gmail.com>2017-09-14 12:01:44 -0500
committerHarrison Healey <harrisonmhealey@gmail.com>2017-09-14 13:01:44 -0400
commitb6fb98a43176215f16fc52b64abebde51355e5c1 (patch)
tree095a2006bdfdd30d1a9c4fc4e604924fc0f50225 /app/web_conn.go
parentaf81f7e48bd2afaaa8c71f78bf86bdc00b104e4d (diff)
downloadchat-b6fb98a43176215f16fc52b64abebde51355e5c1.tar.gz
chat-b6fb98a43176215f16fc52b64abebde51355e5c1.tar.bz2
chat-b6fb98a43176215f16fc52b64abebde51355e5c1.zip
remove more global references (#7442)
Diffstat (limited to 'app/web_conn.go')
-rw-r--r--app/web_conn.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/app/web_conn.go b/app/web_conn.go
index 8a26f7c9c..556612e79 100644
--- a/app/web_conn.go
+++ b/app/web_conn.go
@@ -30,6 +30,7 @@ const (
type WebConn struct {
sessionExpiresAt int64 // This should stay at the top for 64-bit alignment of 64-bit words accessed atomically
+ App *App
WebSocket *websocket.Conn
Send chan model.WebSocketMessage
sessionToken atomic.Value
@@ -51,6 +52,7 @@ func (a *App) NewWebConn(ws *websocket.Conn, session model.Session, t goi18n.Tra
}
wc := &WebConn{
+ App: a,
Send: make(chan model.WebSocketMessage, SEND_QUEUE_SIZE),
WebSocket: ws,
UserId: session.UserId,
@@ -103,7 +105,7 @@ func (c *WebConn) ReadPump() {
c.WebSocket.SetPongHandler(func(string) error {
c.WebSocket.SetReadDeadline(time.Now().Add(PONG_WAIT))
if c.IsAuthenticated() {
- go Global().SetStatusAwayIfNeeded(c.UserId, false)
+ go c.App.SetStatusAwayIfNeeded(c.UserId, false)
}
return nil
})
@@ -120,7 +122,7 @@ func (c *WebConn) ReadPump() {
return
} else {
- Global().Srv.WebSocketRouter.ServeWebSocket(c, &req)
+ c.App.Srv.WebSocketRouter.ServeWebSocket(c, &req)
}
}
}
@@ -231,7 +233,7 @@ func (webCon *WebConn) IsAuthenticated() bool {
return false
}
- session, err := Global().GetSession(webCon.GetSessionToken())
+ session, err := webCon.App.GetSession(webCon.GetSessionToken())
if err != nil {
l4g.Error(utils.T("api.websocket.invalid_session.error"), err.Error())
webCon.SetSessionToken("")
@@ -283,7 +285,7 @@ func (webCon *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool {
}
if webCon.AllChannelMembers == nil {
- if result := <-Global().Srv.Store.Channel().GetAllChannelMembersForUser(webCon.UserId, true); result.Err != nil {
+ if result := <-webCon.App.Srv.Store.Channel().GetAllChannelMembersForUser(webCon.UserId, true); result.Err != nil {
l4g.Error("webhub.shouldSendEvent: " + result.Err.Error())
return false
} else {
@@ -313,7 +315,7 @@ func (webCon *WebConn) IsMemberOfTeam(teamId string) bool {
currentSession := webCon.GetSession()
if currentSession == nil || len(currentSession.Token) == 0 {
- session, err := Global().GetSession(webCon.GetSessionToken())
+ session, err := webCon.App.GetSession(webCon.GetSessionToken())
if err != nil {
l4g.Error(utils.T("api.websocket.invalid_session.error"), err.Error())
return false