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) }