Browse Source

mark dirty when a client first becomes always-on

tags/v2.0.0
Shivaram Lingamneni 4 years ago
parent
commit
d5f68215e1
1 changed files with 6 additions and 0 deletions
  1. 6
    0
      irc/getters.go

+ 6
- 0
irc/getters.go View File

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

Loading…
Cancel
Save