diff options
Diffstat (limited to 'bridge')
-rw-r--r-- | bridge/config/config.go | 1 | ||||
-rw-r--r-- | bridge/irc/irc.go | 8 |
2 files changed, 9 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 |