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