浏览代码

Handle connection failures like disconnections

Tulir Asokan 6 年之前
父节点
当前提交
ae92d71d5a
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      user.go

+ 8 - 1
user.go

@@ -234,12 +234,19 @@ func (user *User) HandleError(err error) {
 	closed, ok := err.(*whatsapp.ErrConnectionClosed)
 	if ok {
 		if closed.Code != 1000 {
-			msg := fmt.Sprintf("\u26a0 Your WhatsApp connection failed with websocket status code %d.\n\n"+
+			msg := fmt.Sprintf("\u26a0 Your WhatsApp connection was closed with websocket status code %d.\n\n"+
 				"Use the `reconnect` command to reconnect.", closed.Code)
 			_, _ = user.bridge.Bot.SendMessageEvent(user.ManagementRoom, mautrix.EventMessage, format.RenderMarkdown(msg))
 		}
 		user.Connected = false
 	}
+	failed, ok := err.(*whatsapp.ErrConnectionFailed)
+	if ok {
+		msg := fmt.Sprintf("\u26a0 Your WhatsApp connection failed: %v.\n\n"+
+			"Use the `reconnect` command to reconnect.", failed.Err)
+		_, _ = user.bridge.Bot.SendMessageEvent(user.ManagementRoom, mautrix.EventMessage, format.RenderMarkdown(msg))
+		user.Connected = false
+	}
 }
 
 func (user *User) HandleJSONParseError(err error) {