From c7f53cf02b44a4237c738b2f35ecf8de43a92eb2 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Tue, 12 May 2020 00:16:24 +0530 Subject: [PATCH] MM-24759: fix order of calling SetstatusOnline (#14450) We would call SetStatusOnline in a goroutine before actually calling HubRegister. This could cause the message not to be sent after all, because there's no guarantee that Register would actually happen before it. To fix it, we just change the order of things. Co-authored-by: mattermod --- app/websocket_router.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/websocket_router.go b/app/websocket_router.go index 80cc0e7980..0aab6d2dc7 100644 --- a/app/websocket_router.go +++ b/app/websocket_router.go @@ -54,17 +54,17 @@ func (wr *WebSocketRouter) ServeWebSocket(conn *WebConn, r *model.WebSocketReque return } - wr.app.Srv().Go(func() { - wr.app.SetStatusOnline(session.UserId, false) - wr.app.UpdateLastActivityAtIfNeeded(*session) - }) - conn.SetSession(session) conn.SetSessionToken(session.Token) conn.UserId = session.UserId wr.app.HubRegister(conn) + wr.app.Srv().Go(func() { + wr.app.SetStatusOnline(session.UserId, false) + wr.app.UpdateLastActivityAtIfNeeded(*session) + }) + resp := model.NewWebSocketResponse(model.STATUS_OK, r.Seq, nil) hub := wr.app.GetHubForUserId(conn.UserId) if hub == nil {