summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim <wim@42.be>2017-09-20 22:47:26 +0200
committerWim <wim@42.be>2017-09-20 22:47:26 +0200
commitb49fb2b69cf71f2b6eee2232e9f67e5b227f38ec (patch)
tree5dba7f8da41b1c6c1e4026b9335e220b19dd2231
parent4bda29cb3896ac65c3aafa784c8faac73c3c111b (diff)
downloadmatterbridge-msglm-b49fb2b69cf71f2b6eee2232e9f67e5b227f38ec.tar.gz
matterbridge-msglm-b49fb2b69cf71f2b6eee2232e9f67e5b227f38ec.tar.bz2
matterbridge-msglm-b49fb2b69cf71f2b6eee2232e9f67e5b227f38ec.zip
Add support for Quakenet auth (irc). Closes #263
-rw-r--r--bridge/config/config.go1
-rw-r--r--bridge/irc/irc.go8
-rw-r--r--matterbridge.toml.sample5
3 files changed, 14 insertions, 0 deletions
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 229cbef7..2b678d2f 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -58,6 +58,7 @@ type Protocol struct {
Nick string // all protocols
NickFormatter string // mattermost, slack
NickServNick string // IRC
+ NickServUsername string // IRC
NickServPassword string // IRC
NicksPerRow int // mattermost, slack
NoHomeServerSuffix bool // matrix
diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go
index 1e0101fa..3276eab5 100644
--- a/bridge/irc/irc.go
+++ b/bridge/irc/irc.go
@@ -88,6 +88,7 @@ func (b *Birc) Connect() error {
i.Password = b.Config.Password
}
i.AddCallback(ircm.RPL_WELCOME, b.handleNewConnection)
+ i.AddCallback(ircm.RPL_ENDOFMOTD, b.handleOtherAuth)
err := i.Connect(b.Config.Server)
if err != nil {
return err
@@ -257,6 +258,13 @@ func (b *Birc) handleOther(event *irc.Event) {
flog.Debugf("%#v", event.Raw)
}
+func (b *Birc) handleOtherAuth(event *irc.Event) {
+ if strings.EqualFold(b.Config.NickServNick, "Q@CServe.quakenet.org") {
+ flog.Debugf("Authenticating %s against %s", b.Config.NickServUsername, b.Config.NickServNick)
+ b.i.Privmsg(b.Config.NickServNick, "AUTH "+b.Config.NickServUsername+" "+b.Config.NickServPassword)
+ }
+}
+
func (b *Birc) handlePrivMsg(event *irc.Event) {
b.Nick = b.i.GetNick()
// freenode doesn't send 001 as first reply
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index 0e612d21..81bf1cc9 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -55,10 +55,15 @@ Nick="matterbot"
#If you registered your bot with a service like Nickserv on freenode.
#Also being used when UseSASL=true
+#
+#Note: if you want do to quakenet auth, set NickServNick="Q@CServe.quakenet.org"
#OPTIONAL
NickServNick="nickserv"
NickServPassword="secret"
+#OPTIONAL only used for quakenet auth
+NickServUsername="username"
+
#Flood control
#Delay in milliseconds between each message send to the IRC server
#OPTIONAL (default 1300)