浏览代码

Disconnect clients when stopping bridge

Tulir Asokan 6 年之前
父节点
当前提交
94ba2244b0
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      main.go

+ 9 - 0
main.go

@@ -197,6 +197,15 @@ func (bridge *Bridge) StartUsers() {
 func (bridge *Bridge) Stop() {
 	bridge.AS.Stop()
 	bridge.EventProcessor.Stop()
+	for _, user := range bridge.usersByJID {
+		bridge.Log.Debugln("Disconnecting", user.MXID)
+		sess, err := user.Conn.Disconnect()
+		if err != nil {
+			bridge.Log.Errorfln("Error while disconnecting %s: %v", user.MXID, err)
+		} else {
+			user.SetSession(&sess)
+		}
+	}
 	err := bridge.StateStore.Save()
 	if err != nil {
 		bridge.Log.Warnln("Failed to save state store:", err)