Add BindAddress option. Closes #4

This commit is contained in:
Wim 2015-12-12 21:26:53 +01:00
parent c1f80383f7
commit bdac03f725
5 changed files with 10 additions and 3 deletions

View File

@ -54,6 +54,8 @@ channel="#matterbridge"
url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey" url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"
#port the bridge webserver will listen on #port the bridge webserver will listen on
port=9999 port=9999
#address the webserver will bind to
BindAddress="0.0.0.0"
showjoinpart=true #show irc users joining and parting 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. #the token you get from the outgoing webhook in mattermost. If empty no token check will be done.
token=yourtokenfrommattermost token=yourtokenfrommattermost

View File

@ -22,6 +22,7 @@ type Config struct {
Token string Token string
IconURL string IconURL string
SkipTLSVerify bool SkipTLSVerify bool
BindAddress string
} }
General struct { General struct {
GiphyAPIKey string GiphyAPIKey string

View File

@ -13,6 +13,7 @@ showjoinpart=true
#token=yourtokenfrommattermost #token=yourtokenfrommattermost
IconURL="http://youricon.png" IconURL="http://youricon.png"
#SkipTLSVerify=true #SkipTLSVerify=true
#BindAddress="0.0.0.0"
[general] [general]
GiphyAPIKey=dc6zaTOxFJmzC GiphyAPIKey=dc6zaTOxFJmzC

View File

@ -22,7 +22,8 @@ func NewBridge(name string, config *Config) *Bridge {
b.Config = config b.Config = config
b.m = matterhook.New(b.Config.Mattermost.URL, 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}) InsecureSkipVerify: b.Config.Mattermost.SkipTLSVerify,
BindAddress: b.Config.Mattermost.BindAddress})
b.i = b.createIRC(name) b.i = b.createIRC(name)
go b.handleMatter() go b.handleMatter()
return b return b

View File

@ -52,6 +52,7 @@ type Client struct {
// Config for client. // Config for client.
type Config struct { type Config struct {
Port int // Port to listen on. Port int // Port to listen on.
BindAddress string // Address to listen on
Token string // Only allow this token from Mattermost. (Allow everything when empty) Token string // Only allow this token from Mattermost. (Allow everything when empty)
InsecureSkipVerify bool // disable certificate checking InsecureSkipVerify bool // disable certificate checking
DisableServer bool // Do not start server for outgoing webhooks from Mattermost. DisableServer bool // Do not start server for outgoing webhooks from Mattermost.
@ -63,6 +64,7 @@ func New(url string, config Config) *Client {
if c.Port == 0 { if c.Port == 0 {
c.Port = 9999 c.Port = 9999
} }
c.BindAddress += ":"
tr := &http.Transport{ tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify}, TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify},
} }
@ -77,8 +79,8 @@ func New(url string, config Config) *Client {
func (c *Client) StartServer() { func (c *Client) StartServer() {
mux := http.NewServeMux() mux := http.NewServeMux()
mux.Handle("/", c) mux.Handle("/", c)
log.Printf("Listening on http://0.0.0.0:%v...\n", c.Port) log.Printf("Listening on http://%v:%v...\n", c.BindAddress, c.Port)
if err := http.ListenAndServe((":" + strconv.Itoa(c.Port)), mux); err != nil { if err := http.ListenAndServe((c.BindAddress + strconv.Itoa(c.Port)), mux); err != nil {
log.Fatal(err) log.Fatal(err)
} }
} }