|
@@ -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
|
|