Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit 8b6a00d1c58ee505fa1f5515d561eb909cb8063a Author: Wim <wim@42.be> Date: Sun Oct 25 01:00:19 2015 +0000 Add SkipTLSVerify option for mattermost, allows selfsigned certificates diff --git a/README.md b/README.md index 655d461..5946908 100644 --- a/README.md +++ b/README.md @@ -597 +598 @@ port=9999  showjoinpart=true #show irc users joining and parting  #the token you get from the outgoing webhook in mattermost. If empty no token check will be done.  token=yourtokenfrommattermost - +#disable certificate checking (selfsigned certificates) +#SkipTLSVerify=true  ```    ### mattermost diff --git a/config.go b/config.go index efd6eaf..e40b0e9 100644 --- a/config.go +++ b/config.go @@ -1611 +1612 @@ type Config struct {   Channel string   }   Mattermost struct { - URL string - Port int - ShowJoinPart bool - Token string - IconURL string + URL string + Port int + ShowJoinPart bool + Token string + IconURL string + SkipTLSVerify bool   }  }   diff --git a/matterbridge.conf.sample b/matterbridge.conf.sample index 231a3c6..bac921c 100644 --- a/matterbridge.conf.sample +++ b/matterbridge.conf.sample @@ -123 +124 @@ port=9999  showjoinpart=true  #token=yourtokenfrommattermost  IconURL="http://youricon.png" +#SkipTLSVerify=true diff --git a/matterbridge.go b/matterbridge.go index 94d3895..4a36e80 100644 --- a/matterbridge.go +++ b/matterbridge.go @@ -207 +208 @@ func NewBridge(name string, config *Config) *Bridge {   b := &Bridge{}   b.Config = config   b.m = matterhook.New(b.Config.Mattermost.URL, - matterhook.Config{Port: b.Config.Mattermost.Port, Token: b.Config.Mattermost.Token}) + matterhook.Config{Port: b.Config.Mattermost.Port, Token: b.Config.Mattermost.Token, + InsecureSkipVerify: b.Config.Mattermost.SkipTLSVerify})   b.i = b.createIRC(name)   go b.handleMatter()   return b @@ -687 +6911 @@ func (b *Bridge) Send(nick string, message string) error {   matterMessage := matterhook.OMessage{IconURL: b.Config.Mattermost.IconURL}   matterMessage.UserName = nick   matterMessage.Text = message - b.m.Send(matterMessage) + err := b.m.Send(matterMessage) + if err != nil { + log.Println(err) + return err + }   return nil  }   diff --git a/matterhook/matterhook.go b/matterhook/matterhook.go index ed06249..1ff1f42 100644 --- a/matterhook/matterhook.go +++ b/matterhook/matterhook.go @@ -36 +37 @@ package matterhook    import (   "bytes" + "crypto/tls"   "encoding/json"   "fmt"   "github.com/gorilla/schema" @@ -3916 +4018 @@ type IMessage struct {    // Client for Mattermost.  type Client struct { - url string - In chan IMessage - Out chan OMessage + url string + In chan IMessage + Out chan OMessage + httpclient *http.Client   Config  }    // Config for client.  type Config struct { - Port int // Port to listen on. - Token string // Only allow this token from Mattermost. (Allow everything when empty) + Port int // Port to listen on. + Token string // Only allow this token from Mattermost. (Allow everything when empty) + InsecureSkipVerify bool // disable certificate checking  }    // New Mattermost client. @@ -576 +6011 @@ func New(url string, config Config) *Client {   if c.Port == 0 {   c.Port = 9999   } + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify}, + } + c.httpclient = &http.Client{Transport: tr} +   go c.StartServer()   return c  } @@ -1247 +1327 @@ func (c *Client) Send(msg OMessage) error {   if err != nil {   return err   } - resp, err := http.Post(c.url, "application/json", bytes.NewReader(buf)) + resp, err := c.httpclient.Post(c.url, "application/json", bytes.NewReader(buf))   if err != nil {   return err   }