aboutsummaryrefslogtreecommitdiff
path: root/account.go
diff options
context:
space:
mode:
Diffstat (limited to 'account.go')
-rw-r--r--account.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/account.go b/account.go
index cdcccfe..f0954e8 100644
--- a/account.go
+++ b/account.go
@@ -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()
}
}