Browse Source

Merge pull request #1852 from slingamn/fail_authenticate

add FAIL AUTHENTICATE VERIFICATION_REQUIRED
tags/v2.9.0-rc1
Shivaram Lingamneni 2 years ago
parent
commit
72959eb1cf
No account linked to committer's email address
1 changed files with 10 additions and 4 deletions
  1. 10
    4
      irc/handlers.go

+ 10
- 4
irc/handlers.go View File

269
 	password := string(splitValue[2])
269
 	password := string(splitValue[2])
270
 	err := server.accounts.AuthenticateByPassphrase(client, authcid, password)
270
 	err := server.accounts.AuthenticateByPassphrase(client, authcid, password)
271
 	if err != nil {
271
 	if err != nil {
272
-		msg := authErrorToMessage(server, err)
273
-		rb.Add(nil, server.name, ERR_SASLFAIL, client.Nick(), fmt.Sprintf("%s: %s", client.t("SASL authentication failed"), client.t(msg)))
272
+		sendAuthErrorResponse(client, rb, err)
274
 		return false
273
 		return false
275
 	} else if !fixupNickEqualsAccount(client, rb, server.Config(), "") {
274
 	} else if !fixupNickEqualsAccount(client, rb, server.Config(), "") {
276
 		return false
275
 		return false
280
 	return false
279
 	return false
281
 }
280
 }
282
 
281
 
282
+func sendAuthErrorResponse(client *Client, rb *ResponseBuffer, err error) {
283
+	msg := authErrorToMessage(client.server, err)
284
+	rb.Add(nil, client.server.name, ERR_SASLFAIL, client.nick, fmt.Sprintf("%s: %s", client.t("SASL authentication failed"), client.t(msg)))
285
+	if err == errAccountUnverified {
286
+		rb.Add(nil, client.server.name, "FAIL", "AUTHENTICATE", "VERIFICATION_REQUIRED", "*", client.t(err.Error()))
287
+	}
288
+}
289
+
283
 func authErrorToMessage(server *Server, err error) (msg string) {
290
 func authErrorToMessage(server *Server, err error) (msg string) {
284
 	if throttled, ok := err.(*ThrottleError); ok {
291
 	if throttled, ok := err.(*ThrottleError); ok {
285
 		return throttled.Error()
292
 		return throttled.Error()
329
 	}
336
 	}
330
 
337
 
331
 	if err != nil {
338
 	if err != nil {
332
-		msg := authErrorToMessage(server, err)
333
-		rb.Add(nil, server.name, ERR_SASLFAIL, client.nick, fmt.Sprintf("%s: %s", client.t("SASL authentication failed"), client.t(msg)))
339
+		sendAuthErrorResponse(client, rb, err)
334
 		return false
340
 		return false
335
 	} else if !fixupNickEqualsAccount(client, rb, server.Config(), "") {
341
 	} else if !fixupNickEqualsAccount(client, rb, server.Config(), "") {
336
 		return false
342
 		return false

Loading…
Cancel
Save