Browse Source

add SASL login support

tags/v0.4.0
Peter van Dijk 5 years ago
parent
commit
250324bc30
No account linked to committer's email address
2 changed files with 13 additions and 1 deletions
  1. 2
    0
      examples/irccat.json
  2. 11
    1
      main.go

+ 2
- 0
examples/irccat.json View File

@@ -26,6 +26,8 @@
26 26
     "nick": "irccat",
27 27
     "realname": "IRCCat",
28 28
     "identify_pass": "",
29
+    "sasl_login": "",
30
+    "sasl_pass": "",
29 31
     "channels": ["#channel"],
30 32
     "keys": {"#channel": "join_key"}
31 33
   },

+ 11
- 1
main.go View File

@@ -86,8 +86,18 @@ func (i *IRCCat) signalHandler() {
86 86
 func (i *IRCCat) connectIRC() error {
87 87
 	irccon := irc.IRC(viper.GetString("irc.nick"), viper.GetString("irc.realname"))
88 88
 	i.irc = irccon
89
-	irccon.RequestCaps = []string{"away-notify", "account-notify", "draft/message-tags-0.2"}
89
+	// requesting any caps breaks SASL
90
+	// irccon.RequestCaps = []string{"away-notify", "account-notify", "draft/message-tags-0.2"}
90 91
 	irccon.UseTLS = viper.GetBool("irc.tls")
92
+	if viper.IsSet("irc.sasl_pass") && viper.GetString("irc.sasl_pass") != "" {
93
+		if viper.IsSet("irc.sasl_login") && viper.GetString("irc.sasl_login") != "" {
94
+			irccon.SASLLogin = viper.GetString("irc.sasl_login")
95
+		} else {
96
+			irccon.SASLLogin = viper.GetString("irc.nick")
97
+		}
98
+		irccon.SASLPassword = viper.GetString("irc.sasl_pass")
99
+		irccon.UseSASL = true
100
+	}
91 101
 	if viper.GetBool("irc.tls_skip_verify") {
92 102
 		irccon.TLSConfig = &tls.Config{InsecureSkipVerify: true}
93 103
 	}

Loading…
Cancel
Save