From b49fb2b69cf71f2b6eee2232e9f67e5b227f38ec Mon Sep 17 00:00:00 2001 From: Wim Date: Wed, 20 Sep 2017 22:47:26 +0200 Subject: Add support for Quakenet auth (irc). Closes #263 --- bridge/config/config.go | 1 + bridge/irc/irc.go | 8 ++++++++ 2 files changed, 9 insertions(+) (limited to 'bridge') 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 -- cgit v1.2.3