From ca3be5102838044d7e2fdc583a2dd19a83d60ab6 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Thu, 19 Mar 2020 05:08:53 -0400 Subject: [PATCH] fix double application of guest prefix --- irc/client_lookup_set.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/irc/client_lookup_set.go b/irc/client_lookup_set.go index 4a480060..23353706 100644 --- a/irc/client_lookup_set.go +++ b/irc/client_lookup_set.go @@ -151,10 +151,19 @@ func (clients *ClientManager) SetNick(client *Client, session *Session, newNick } if account == "" && config.Accounts.NickReservation.ForceGuestFormat { - newNick = strings.Replace(config.Accounts.NickReservation.GuestFormat, "*", newNick, 1) + newcfnick, err = CasefoldName(newNick) + if err != nil { + return "", errNicknameInvalid + } + if !config.Accounts.NickReservation.guestRegexpFolded.MatchString(newcfnick) { + newNick = strings.Replace(config.Accounts.NickReservation.GuestFormat, "*", newNick, 1) + newcfnick = "" // re-fold it below + } } - newcfnick, err = CasefoldName(newNick) + if newcfnick == "" { + newcfnick, err = CasefoldName(newNick) + } if err != nil { return "", errNicknameInvalid }