Report WhatsApp server connection errors to user too. Fixes #18

This commit is contained in:
Tulir Asokan 2019-05-16 18:18:11 +03:00
parent b5af35684d
commit 2381eb029b
2 changed files with 9 additions and 2 deletions

View file

@ -118,7 +118,10 @@ const cmdLoginHelp = `login - Authenticate this Bridge as WhatsApp Web Client`
// CommandLogin handles login command
func (handler *CommandHandler) CommandLogin(ce *CommandEvent) {
if ce.User.Conn == nil {
ce.User.Connect(true)
if !ce.User.Connect(true) {
ce.User.log.Debugln("Connect() returned false, assuming error was logged elsewhere and canceling login.")
return
}
}
ce.User.Login(ce)
}

View file

@ -152,13 +152,17 @@ func (user *User) Connect(evenIfNoSession bool) bool {
conn, err := whatsapp.NewConn(timeout * time.Second)
if err != nil {
user.log.Errorln("Failed to connect to WhatsApp:", err)
msg := format.RenderMarkdown(fmt.Sprintf("\u26a0 Failed to connect to WhatsApp server. " +
"This indicates a network problem on the bridge server. See bridge logs for more info."))
_, _ = user.bridge.Bot.SendMessageEvent(user.ManagementRoom, mautrix.EventMessage, msg)
return false
}
user.Conn = whatsappExt.ExtendConn(conn)
_ = user.Conn.SetClientName("Mautrix-WhatsApp bridge", "mx-wa")
user.log.Debugln("WhatsApp connection successful")
user.Conn.AddHandler(user)
return user.RestoreSession()
user.RestoreSession()
return true
}
func (user *User) RestoreSession() bool {