|
@@ -1228,10 +1228,9 @@ func inviteHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
|
1228
|
1228
|
nickname := msg.Params[0]
|
1229
|
1229
|
channelName := msg.Params[1]
|
1230
|
1230
|
|
1231
|
|
- casefoldedNickname, err := CasefoldName(nickname)
|
1232
|
|
- target := server.clients.Get(casefoldedNickname)
|
1233
|
|
- if err != nil || target == nil {
|
1234
|
|
- rb.Add(nil, server.name, ERR_NOSUCHNICK, client.nick, nickname, client.t("No such nick"))
|
|
1231
|
+ target := server.clients.Get(nickname)
|
|
1232
|
+ if target == nil {
|
|
1233
|
+ rb.Add(nil, server.name, ERR_NOSUCHNICK, client.Nick(), utils.SafeErrorParam(nickname), client.t("No such nick"))
|
1235
|
1234
|
return false
|
1236
|
1235
|
}
|
1237
|
1236
|
|
|
@@ -1313,7 +1312,7 @@ func sajoinHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
|
1313
|
1312
|
} else {
|
1314
|
1313
|
target = server.clients.Get(msg.Params[0])
|
1315
|
1314
|
if target == nil {
|
1316
|
|
- rb.Add(nil, server.name, ERR_NOSUCHNICK, client.Nick(), msg.Params[0], "No such nick")
|
|
1315
|
+ rb.Add(nil, server.name, ERR_NOSUCHNICK, client.Nick(), utils.SafeErrorParam(msg.Params[0]), "No such nick")
|
1317
|
1316
|
return false
|
1318
|
1317
|
}
|
1319
|
1318
|
channelString = msg.Params[1]
|
|
@@ -1385,10 +1384,9 @@ func killHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
|
1385
|
1384
|
comment = msg.Params[1]
|
1386
|
1385
|
}
|
1387
|
1386
|
|
1388
|
|
- casefoldedNickname, err := CasefoldName(nickname)
|
1389
|
|
- target := server.clients.Get(casefoldedNickname)
|
1390
|
|
- if err != nil || target == nil {
|
1391
|
|
- rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.nick, nickname, client.t("No such nick"))
|
|
1387
|
+ target := server.clients.Get(nickname)
|
|
1388
|
+ if target == nil {
|
|
1389
|
+ rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.nick, utils.SafeErrorParam(nickname), client.t("No such nick"))
|
1392
|
1390
|
return false
|
1393
|
1391
|
}
|
1394
|
1392
|
|
|
@@ -2564,25 +2562,23 @@ func userHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
|
2564
|
2562
|
|
2565
|
2563
|
// USERHOST <nickname>{ <nickname>}
|
2566
|
2564
|
func userhostHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
|
2567
|
|
- returnedNicks := make(map[string]bool)
|
|
2565
|
+ returnedClients := make(ClientSet)
|
2568
|
2566
|
|
2569
|
2567
|
for i, nickname := range msg.Params {
|
2570
|
2568
|
if i >= 10 {
|
2571
|
2569
|
break
|
2572
|
2570
|
}
|
2573
|
2571
|
|
2574
|
|
- casefoldedNickname, err := CasefoldName(nickname)
|
2575
|
|
- target := server.clients.Get(casefoldedNickname)
|
2576
|
|
- if err != nil || target == nil {
|
2577
|
|
- rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.nick, nickname, client.t("No such nick"))
|
2578
|
|
- return false
|
2579
|
|
- }
|
2580
|
|
- if returnedNicks[casefoldedNickname] {
|
|
2572
|
+ target := server.clients.Get(nickname)
|
|
2573
|
+ if target == nil {
|
|
2574
|
+ rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.nick, utils.SafeErrorParam(nickname), client.t("No such nick"))
|
2581
|
2575
|
continue
|
2582
|
2576
|
}
|
2583
|
|
-
|
2584
|
2577
|
// to prevent returning multiple results for a single nick
|
2585
|
|
- returnedNicks[casefoldedNickname] = true
|
|
2578
|
+ if returnedClients.Has(target) {
|
|
2579
|
+ continue
|
|
2580
|
+ }
|
|
2581
|
+ returnedClients.Add(target)
|
2586
|
2582
|
|
2587
|
2583
|
var isOper, isAway string
|
2588
|
2584
|
|
|
@@ -2730,11 +2726,6 @@ func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
2730
|
2726
|
masksString = msg.Params[0]
|
2731
|
2727
|
}
|
2732
|
2728
|
|
2733
|
|
- if len(strings.TrimSpace(masksString)) < 1 {
|
2734
|
|
- rb.Add(nil, server.name, ERR_UNKNOWNERROR, client.nick, msg.Command, client.t("No masks given"))
|
2735
|
|
- return false
|
2736
|
|
- }
|
2737
|
|
-
|
2738
|
2729
|
handleService := func(nick string) bool {
|
2739
|
2730
|
cfnick, _ := CasefoldName(nick)
|
2740
|
2731
|
service, ok := OragonoServices[cfnick]
|
|
@@ -2754,7 +2745,7 @@ func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
2754
|
2745
|
for _, mask := range strings.Split(masksString, ",") {
|
2755
|
2746
|
matches := server.clients.FindAll(mask)
|
2756
|
2747
|
if len(matches) == 0 && !handleService(mask) {
|
2757
|
|
- rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.nick, mask, client.t("No such nick"))
|
|
2748
|
+ rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.Nick(), utils.SafeErrorParam(mask), client.t("No such nick"))
|
2758
|
2749
|
continue
|
2759
|
2750
|
}
|
2760
|
2751
|
for mclient := range matches {
|
|
@@ -2768,11 +2759,11 @@ func whoisHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res
|
2768
|
2759
|
if mclient != nil {
|
2769
|
2760
|
client.getWhoisOf(mclient, rb)
|
2770
|
2761
|
} else if !handleService(nick) {
|
2771
|
|
- rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.nick, masksString, client.t("No such nick"))
|
|
2762
|
+ rb.Add(nil, client.server.name, ERR_NOSUCHNICK, client.Nick(), utils.SafeErrorParam(masksString), client.t("No such nick"))
|
2772
|
2763
|
}
|
2773
|
2764
|
// fall through, ENDOFWHOIS is always sent
|
2774
|
2765
|
}
|
2775
|
|
- rb.Add(nil, server.name, RPL_ENDOFWHOIS, client.nick, masksString, client.t("End of /WHOIS list"))
|
|
2766
|
+ rb.Add(nil, server.name, RPL_ENDOFWHOIS, client.nick, utils.SafeErrorParam(masksString), client.t("End of /WHOIS list"))
|
2776
|
2767
|
return false
|
2777
|
2768
|
}
|
2778
|
2769
|
|