From adec73f542769b6e8fd9f6a57447c439761c7500 Mon Sep 17 00:00:00 2001 From: Wim Date: Thu, 8 Dec 2016 00:07:24 +0100 Subject: [PATCH] Check errors only on first connect. Keep retrying after first connection succeeds. (mattermost) Closes #95 --- matterclient/matterclient.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go index 3ee6fca6..70493693 100644 --- a/matterclient/matterclient.go +++ b/matterclient/matterclient.go @@ -80,6 +80,11 @@ func (m *MMClient) SetLogLevel(level string) { } func (m *MMClient) Login() error { + // check if this is a first connect or a reconnection + firstConnection := true + if m.WsConnected == true { + firstConnection = false + } m.WsConnected = false if m.WsQuit { return nil @@ -125,11 +130,7 @@ func (m *MMClient) Login() error { if appErr != nil { d := b.Duration() m.log.Debug(appErr.DetailedError) - //TODO more generic fix needed - if !strings.Contains(appErr.DetailedError, "connection refused") && - !strings.Contains(appErr.DetailedError, "invalid character") && - !strings.Contains(appErr.DetailedError, "connection reset by peer") && - !strings.Contains(appErr.DetailedError, "connection timed out") { + if firstConnection { if appErr.Message == "" { return errors.New(appErr.DetailedError) }