Add an option to skip the Mattermost server version check (#849)

Adds SkipVersionCheck bool option for mattermost
This commit is contained in:
Joona Hoikkala 2019-06-16 17:23:50 +03:00 committed by Wim
parent 76c7b69e4e
commit 80b4cec87a
4 changed files with 21 additions and 14 deletions

View File

@ -127,6 +127,7 @@ type Protocol struct {
ShowUserTyping bool // slack ShowUserTyping bool // slack
ShowEmbeds bool // discord ShowEmbeds bool // discord
SkipTLSVerify bool // IRC, mattermost SkipTLSVerify bool // IRC, mattermost
SkipVersionCheck bool // mattermost
StripNick bool // all protocols StripNick bool // all protocols
SyncTopic bool // slack SyncTopic bool // slack
TengoModifyMessage string // general TengoModifyMessage string // general

View File

@ -70,6 +70,7 @@ func (b *Bmattermost) apiLogin() error {
b.mc.SetLogLevel("debug") b.mc.SetLogLevel("debug")
} }
b.mc.SkipTLSVerify = b.GetBool("SkipTLSVerify") b.mc.SkipTLSVerify = b.GetBool("SkipTLSVerify")
b.mc.SkipVersionCheck = b.GetBool("SkipVersionCheck")
b.mc.NoTLS = b.GetBool("NoTLS") b.mc.NoTLS = b.GetBool("NoTLS")
b.Log.Infof("Connecting %s (team: %s) on %s", b.GetString("Login"), b.GetString("Team"), b.GetString("Server")) b.Log.Infof("Connecting %s (team: %s) on %s", b.GetString("Login"), b.GetString("Team"), b.GetString("Server"))
err := b.mc.Login() err := b.mc.Login()

View File

@ -186,15 +186,19 @@ func (m *MMClient) serverAlive(firstConnection bool, b *backoff.Backoff) error {
if resp.Error != nil { if resp.Error != nil {
return fmt.Errorf("%#v", resp.Error.Error()) 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) return fmt.Errorf("unsupported mattermost version: %s", resp.ServerVersion)
} }
m.ServerVersion = resp.ServerVersion if !m.SkipVersionCheck {
if m.ServerVersion == "" { m.ServerVersion = resp.ServerVersion
m.logger.Debugf("Server not up yet, reconnecting in %s", d) if m.ServerVersion == "" {
time.Sleep(d) 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 { } else {
m.logger.Infof("Found version %s", m.ServerVersion)
return nil return nil
} }
} }

View File

@ -16,14 +16,15 @@ import (
) )
type Credentials struct { type Credentials struct {
Login string Login string
Team string Team string
Pass string Pass string
Token string Token string
CookieToken bool CookieToken bool
Server string Server string
NoTLS bool NoTLS bool
SkipTLSVerify bool SkipTLSVerify bool
SkipVersionCheck bool
} }
type Message struct { type Message struct {