Przeglądaj źródła

fix #1831

RPL_ENDOFWHO should send the original, un-normalized mask
tags/v2.9.0-rc1
Shivaram Lingamneni 2 lat temu
rodzic
commit
62b2d0341e
1 zmienionych plików z 9 dodań i 6 usunięć
  1. 9
    6
      irc/handlers.go

+ 9
- 6
irc/handlers.go Wyświetl plik

@@ -3328,12 +3328,15 @@ func (client *Client) rplWhoReply(channel *Channel, target *Client, rb *Response
3328 3328
 
3329 3329
 // WHO <mask> [<filter>%<fields>,<type>]
3330 3330
 func whoHandler(server *Server, client *Client, msg ircmsg.Message, rb *ResponseBuffer) bool {
3331
-	mask := msg.Params[0]
3332
-	var err error
3333
-	if mask == "" {
3334
-		rb.Add(nil, server.name, ERR_UNKNOWNERROR, client.nick, "WHO", client.t("First param must be a mask or channel"))
3331
+	origMask := utils.SafeErrorParam(msg.Params[0])
3332
+	if origMask != msg.Params[0] {
3333
+		rb.Add(nil, server.name, ERR_UNKNOWNERROR, client.Nick(), "WHO", client.t("First param must be a mask or channel"))
3335 3334
 		return false
3336
-	} else if mask[0] == '#' {
3335
+	}
3336
+
3337
+	mask := origMask
3338
+	var err error
3339
+	if mask[0] == '#' {
3337 3340
 		mask, err = CasefoldChannel(msg.Params[0])
3338 3341
 	} else {
3339 3342
 		mask, err = CanonicalizeMaskWildcard(mask)
@@ -3430,7 +3433,7 @@ func whoHandler(server *Server, client *Client, msg ircmsg.Message, rb *Response
3430 3433
 		}
3431 3434
 	}
3432 3435
 
3433
-	rb.Add(nil, server.name, RPL_ENDOFWHO, client.nick, mask, client.t("End of WHO list"))
3436
+	rb.Add(nil, server.name, RPL_ENDOFWHO, client.nick, origMask, client.t("End of WHO list"))
3434 3437
 	return false
3435 3438
 }
3436 3439
 

Ładowanie…
Anuluj
Zapisz