浏览代码

fix double application of guest prefix

tags/v2.1.0-rc1
Shivaram Lingamneni 4 年前
父节点
当前提交
ca3be51028
共有 1 个文件被更改,包括 11 次插入2 次删除
  1. 11
    2
      irc/client_lookup_set.go

+ 11
- 2
irc/client_lookup_set.go 查看文件

@@ -151,10 +151,19 @@ func (clients *ClientManager) SetNick(client *Client, session *Session, newNick
151 151
 		}
152 152
 
153 153
 		if account == "" && config.Accounts.NickReservation.ForceGuestFormat {
154
-			newNick = strings.Replace(config.Accounts.NickReservation.GuestFormat, "*", newNick, 1)
154
+			newcfnick, err = CasefoldName(newNick)
155
+			if err != nil {
156
+				return "", errNicknameInvalid
157
+			}
158
+			if !config.Accounts.NickReservation.guestRegexpFolded.MatchString(newcfnick) {
159
+				newNick = strings.Replace(config.Accounts.NickReservation.GuestFormat, "*", newNick, 1)
160
+				newcfnick = "" // re-fold it below
161
+			}
155 162
 		}
156 163
 
157
-		newcfnick, err = CasefoldName(newNick)
164
+		if newcfnick == "" {
165
+			newcfnick, err = CasefoldName(newNick)
166
+		}
158 167
 		if err != nil {
159 168
 			return "", errNicknameInvalid
160 169
 		}

正在加载...
取消
保存