From 80b4cec87ae6fa85beac024e926069fcf904d347 Mon Sep 17 00:00:00 2001 From: Joona Hoikkala Date: Sun, 16 Jun 2019 17:23:50 +0300 Subject: [PATCH] Add an option to skip the Mattermost server version check (#849) Adds SkipVersionCheck bool option for mattermost --- bridge/config/config.go | 1 + bridge/mattermost/helpers.go | 1 + matterclient/helpers.go | 16 ++++++++++------ matterclient/matterclient.go | 17 +++++++++-------- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/bridge/config/config.go b/bridge/config/config.go index a0cc20f7..e7d8da59 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -127,6 +127,7 @@ type Protocol struct { ShowUserTyping bool // slack ShowEmbeds bool // discord SkipTLSVerify bool // IRC, mattermost + SkipVersionCheck bool // mattermost StripNick bool // all protocols SyncTopic bool // slack TengoModifyMessage string // general diff --git a/bridge/mattermost/helpers.go b/bridge/mattermost/helpers.go index 121cd4db..14b7469d 100644 --- a/bridge/mattermost/helpers.go +++ b/bridge/mattermost/helpers.go @@ -70,6 +70,7 @@ func (b *Bmattermost) apiLogin() error { b.mc.SetLogLevel("debug") } b.mc.SkipTLSVerify = b.GetBool("SkipTLSVerify") + b.mc.SkipVersionCheck = b.GetBool("SkipVersionCheck") b.mc.NoTLS = b.GetBool("NoTLS") b.Log.Infof("Connecting %s (team: %s) on %s", b.GetString("Login"), b.GetString("Team"), b.GetString("Server")) err := b.mc.Login() diff --git a/matterclient/helpers.go b/matterclient/helpers.go index c3d33145..d5b1038a 100644 --- a/matterclient/helpers.go +++ b/matterclient/helpers.go @@ -186,15 +186,19 @@ func (m *MMClient) serverAlive(firstConnection bool, b *backoff.Backoff) error { if resp.Error != nil { return fmt.Errorf("%#v", resp.Error.Error()) } - if firstConnection && !supportedVersion(resp.ServerVersion) { + if firstConnection && !m.SkipVersionCheck && !supportedVersion(resp.ServerVersion) { return fmt.Errorf("unsupported mattermost version: %s", resp.ServerVersion) } - m.ServerVersion = resp.ServerVersion - if m.ServerVersion == "" { - m.logger.Debugf("Server not up yet, reconnecting in %s", d) - time.Sleep(d) + if !m.SkipVersionCheck { + m.ServerVersion = resp.ServerVersion + if m.ServerVersion == "" { + m.logger.Debugf("Server not up yet, reconnecting in %s", d) + time.Sleep(d) + } else { + m.logger.Infof("Found version %s", m.ServerVersion) + return nil + } } else { - m.logger.Infof("Found version %s", m.ServerVersion) return nil } } diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go index 66ffcca6..338f86d7 100644 --- a/matterclient/matterclient.go +++ b/matterclient/matterclient.go @@ -16,14 +16,15 @@ import ( ) type Credentials struct { - Login string - Team string - Pass string - Token string - CookieToken bool - Server string - NoTLS bool - SkipTLSVerify bool + Login string + Team string + Pass string + Token string + CookieToken bool + Server string + NoTLS bool + SkipTLSVerify bool + SkipVersionCheck bool } type Message struct {