瀏覽代碼

mark dirty when a client first becomes always-on

tags/v2.0.0
Shivaram Lingamneni 4 年之前
父節點
當前提交
d5f68215e1
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6
    0
      irc/getters.go

+ 6
- 0
irc/getters.go 查看文件

321
 }
321
 }
322
 
322
 
323
 func (client *Client) SetAccountSettings(settings AccountSettings) {
323
 func (client *Client) SetAccountSettings(settings AccountSettings) {
324
+	// we mark dirty if the client is transitioning to always-on
325
+	markDirty := false
324
 	alwaysOn := persistenceEnabled(client.server.Config().Accounts.Multiclient.AlwaysOn, settings.AlwaysOn)
326
 	alwaysOn := persistenceEnabled(client.server.Config().Accounts.Multiclient.AlwaysOn, settings.AlwaysOn)
325
 	client.stateMutex.Lock()
327
 	client.stateMutex.Lock()
326
 	client.accountSettings = settings
328
 	client.accountSettings = settings
327
 	if client.registered {
329
 	if client.registered {
330
+		markDirty = !client.alwaysOn && alwaysOn
328
 		client.alwaysOn = alwaysOn
331
 		client.alwaysOn = alwaysOn
329
 	}
332
 	}
330
 	client.stateMutex.Unlock()
333
 	client.stateMutex.Unlock()
334
+	if markDirty {
335
+		client.markDirty(IncludeAllAttrs)
336
+	}
331
 }
337
 }
332
 
338
 
333
 func (client *Client) Languages() (languages []string) {
339
 func (client *Client) Languages() (languages []string) {

Loading…
取消
儲存