diff --git a/telegram/utils.go b/telegram/utils.go index 644bde3..957f63b 100644 --- a/telegram/utils.go +++ b/telegram/utils.go @@ -2410,18 +2410,20 @@ func (c *Client) roster(resource string) { if _, ok := c.resources[resource]; ok { c.locks.resourcesLock.Unlock() return // we know it + } else if resource != "" { + c.resources[resource] = true } c.locks.resourcesLock.Unlock() log.Warnf("Sending roster for %v", resource) - for _, chat := range c.cache.OwnChatsKeys() { - c.ProcessStatusUpdate(chat, "", "", true) - } + go func() { + for _, chat := range c.cache.OwnChatsKeys() { + c.ProcessStatusUpdate(chat, "", "", true) + } + }() c.sendPresence(gateway.SPStatus("Logged in as: " + c.Session.Login)) - - c.addResource(resource) } // get last messages from specified chat