浏览代码

nickname: Preserve case when setting NICK

tags/v0.2.0
Daniel Oaks 7 年前
父节点
当前提交
d226a0c6d3
共有 1 个文件被更改,包括 8 次插入7 次删除
  1. 8
    7
      irc/nickname.go

+ 8
- 7
irc/nickname.go 查看文件

@@ -17,15 +17,16 @@ func nickHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
17 17
 		return true
18 18
 	}
19 19
 
20
-	nickname, err := CasefoldName(msg.Params[0])
20
+	nicknameRaw := strings.TrimSpace(msg.Params[0])
21
+	nickname, err := CasefoldName(nicknameRaw)
21 22
 
22
-	if len(strings.TrimSpace(msg.Params[0])) < 1 {
23
+	if len(nicknameRaw) < 1 {
23 24
 		client.Send(nil, server.name, ERR_NONICKNAMEGIVEN, client.nick, "No nickname given")
24 25
 		return false
25 26
 	}
26 27
 
27
-	if err != nil || len(strings.TrimSpace(msg.Params[0])) > server.limits.NickLen {
28
-		client.Send(nil, server.name, ERR_ERRONEUSNICKNAME, client.nick, msg.Params[0], "Erroneous nickname")
28
+	if err != nil || len(nicknameRaw) > server.limits.NickLen {
29
+		client.Send(nil, server.name, ERR_ERRONEUSNICKNAME, client.nick, nicknameRaw, "Erroneous nickname")
29 30
 		return false
30 31
 	}
31 32
 
@@ -36,14 +37,14 @@ func nickHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
36 37
 	//TODO(dan): There's probably some races here, we should be changing this in the primary server thread
37 38
 	target := server.clients.Get(nickname)
38 39
 	if target != nil && target != client {
39
-		client.Send(nil, server.name, ERR_NICKNAMEINUSE, client.nick, msg.Params[0], "Nickname is already in use")
40
+		client.Send(nil, server.name, ERR_NICKNAMEINUSE, client.nick, nicknameRaw, "Nickname is already in use")
40 41
 		return false
41 42
 	}
42 43
 
43 44
 	if client.registered {
44
-		client.ChangeNickname(nickname)
45
+		client.ChangeNickname(nicknameRaw)
45 46
 	} else {
46
-		client.SetNickname(nickname)
47
+		client.SetNickname(nicknameRaw)
47 48
 	}
48 49
 	server.tryRegister(client)
49 50
 	return false

正在加载...
取消
保存