summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim <wim@42.be>2015-12-12 21:26:53 +0100
committerWim <wim@42.be>2015-12-12 23:20:13 +0100
commitbdac03f725858fad0f55cd56fc5d72ac07073d79 (patch)
treea3935f4a26fa4b470f25c9bbdba0cf78932c9c10
parentc1f80383f7cb08c108afc8e093023d09864cc5a2 (diff)
downloadmatterbridge-msglm-bdac03f725858fad0f55cd56fc5d72ac07073d79.tar.gz
matterbridge-msglm-bdac03f725858fad0f55cd56fc5d72ac07073d79.tar.bz2
matterbridge-msglm-bdac03f725858fad0f55cd56fc5d72ac07073d79.zip
Add BindAddress option. Closes #4
-rw-r--r--README.md2
-rw-r--r--config.go1
-rw-r--r--matterbridge.conf.sample1
-rw-r--r--matterbridge.go3
-rw-r--r--matterhook/matterhook.go6
5 files changed, 10 insertions, 3 deletions
diff --git a/README.md b/README.md
index 1ac2ad0c..e7246f8a 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,8 @@ channel="#matterbridge"
url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"
#port the bridge webserver will listen on
port=9999
+#address the webserver will bind to
+BindAddress="0.0.0.0"
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
diff --git a/config.go b/config.go
index ecdf65fa..38e41a79 100644
--- a/config.go
+++ b/config.go
@@ -22,6 +22,7 @@ type Config struct {
Token string
IconURL string
SkipTLSVerify bool
+ BindAddress string
}
General struct {
GiphyAPIKey string
diff --git a/matterbridge.conf.sample b/matterbridge.conf.sample
index f910e019..d581ebed 100644
--- a/matterbridge.conf.sample
+++ b/matterbridge.conf.sample
@@ -13,6 +13,7 @@ showjoinpart=true
#token=yourtokenfrommattermost
IconURL="http://youricon.png"
#SkipTLSVerify=true
+#BindAddress="0.0.0.0"
[general]
GiphyAPIKey=dc6zaTOxFJmzC
diff --git a/matterbridge.go b/matterbridge.go
index 1ab3eacd..bd324608 100644
--- a/matterbridge.go
+++ b/matterbridge.go
@@ -22,7 +22,8 @@ func NewBridge(name string, config *Config) *Bridge {
b.Config = config
b.m = matterhook.New(b.Config.Mattermost.URL,
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)
go b.handleMatter()
return b
diff --git a/matterhook/matterhook.go b/matterhook/matterhook.go
index f750212f..0b023d39 100644
--- a/matterhook/matterhook.go
+++ b/matterhook/matterhook.go
@@ -52,6 +52,7 @@ type Client struct {
// Config for client.
type Config struct {
Port int // Port to listen on.
+ BindAddress string // Address to listen on
Token string // Only allow this token from Mattermost. (Allow everything when empty)
InsecureSkipVerify bool // disable certificate checking
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 {
c.Port = 9999
}
+ c.BindAddress += ":"
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify},
}
@@ -77,8 +79,8 @@ func New(url string, config Config) *Client {
func (c *Client) StartServer() {
mux := http.NewServeMux()
mux.Handle("/", c)
- log.Printf("Listening on http://0.0.0.0:%v...\n", c.Port)
- if err := http.ListenAndServe((":" + strconv.Itoa(c.Port)), mux); err != nil {
+ log.Printf("Listening on http://%v:%v...\n", c.BindAddress, c.Port)
+ if err := http.ListenAndServe((c.BindAddress + strconv.Itoa(c.Port)), mux); err != nil {
log.Fatal(err)
}
}