diff options
Diffstat (limited to 'account.go')
-rw-r--r-- | account.go | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -44,11 +44,13 @@ func SetAccount(mxid string, name string, protocol string, config map[string]str return fmt.Errorf("Wrong protocol") } if !reflect.DeepEqual(config, prev_acct.Config) { - prev_acct.Conn.Close() - prev_acct.JoinedRooms = map[RoomID]bool{} + go func() { + prev_acct.Conn.Close() + prev_acct.JoinedRooms = map[RoomID]bool{} - prev_acct.Config = config - go prev_acct.connect() + prev_acct.Config = config + prev_acct.connect() + }() } } else { proto, ok := Protocols[protocol] @@ -128,11 +130,13 @@ func RemoveAccount(mxUser string, name string) { } } -func CloseAllAcountsForShutdown() { +func CloseAllAccountsForShutdown() { accountsLock.Lock() defer accountsLock.Unlock() + for _, accl := range registeredAccounts { for _, acct := range accl { + log.Printf("Closing %#v", acct) acct.Conn.Close() } } |