From 1c28fbb49b980081c838440b2c4e5dfbd918e6c4 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 25 Feb 2021 13:49:28 +0200 Subject: [PATCH] Fix more connection bugs --- go.mod | 2 +- go.sum | 2 ++ user.go | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 64350ca..ce1d0c5 100644 --- a/go.mod +++ b/go.mod @@ -16,4 +16,4 @@ require ( maunium.net/go/mautrix v0.8.4 ) -replace github.com/Rhymen/go-whatsapp => github.com/tulir/go-whatsapp v0.4.0-rc.2.0.20210224154252-20161c37b47d +replace github.com/Rhymen/go-whatsapp => github.com/tulir/go-whatsapp v0.4.0-rc.2.0.20210225114646-8538575a439d diff --git a/go.sum b/go.sum index 5898a18..e96ff77 100644 --- a/go.sum +++ b/go.sum @@ -303,6 +303,8 @@ github.com/tulir/go-whatsapp v0.4.0-rc.2 h1:fYTC2IFQhL5j/3JyRnlp6PTYmSEnbSrPQgmD github.com/tulir/go-whatsapp v0.4.0-rc.2/go.mod h1:rwwuTh1bKqhgrRvOBAr8hDqtuz8Cc1Quqw/0BeXb+/E= github.com/tulir/go-whatsapp v0.4.0-rc.2.0.20210224154252-20161c37b47d h1:oxxlITnhw42ZWLB7GbLvHVMHHaKkWFDpk81t/bSwjko= github.com/tulir/go-whatsapp v0.4.0-rc.2.0.20210224154252-20161c37b47d/go.mod h1:rwwuTh1bKqhgrRvOBAr8hDqtuz8Cc1Quqw/0BeXb+/E= +github.com/tulir/go-whatsapp v0.4.0-rc.2.0.20210225114646-8538575a439d h1:qvuNKXOolDmchhccwj4NyCD7vwXwc8l9Quwuxfx0oDk= +github.com/tulir/go-whatsapp v0.4.0-rc.2.0.20210225114646-8538575a439d/go.mod h1:rwwuTh1bKqhgrRvOBAr8hDqtuz8Cc1Quqw/0BeXb+/E= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= diff --git a/user.go b/user.go index 9f7bc0e..5f44a2b 100644 --- a/user.go +++ b/user.go @@ -837,6 +837,10 @@ func (user *User) HandleError(err error) { } go user.tryReconnect(fmt.Sprintf("Your WhatsApp connection was closed with websocket status code %d", closed.Code)) } else if failed, ok := err.(*whatsapp.ErrConnectionFailed); ok { + disconnectErr := user.Conn.Disconnect() + if disconnectErr != nil { + user.log.Warnln("Failed to disconnect after connection fail:", disconnectErr) + } user.bridge.Metrics.TrackDisconnection(user.MXID) user.ConnectionErrors++ go user.tryReconnect(fmt.Sprintf("Your WhatsApp connection failed: %v", failed.Err))