forked from External/ergo
prevent nick reservation land-grabs
This commit is contained in:
parent
726dbedab6
commit
775ead700f
4 changed files with 31 additions and 26 deletions
|
|
@ -306,8 +306,16 @@ func (am *AccountManager) Register(client *Client, account string, callbackNames
|
|||
return errAccountAlreadyRegistered
|
||||
}
|
||||
|
||||
// can't register a guest nickname
|
||||
config := am.server.AccountConfig()
|
||||
// if nick reservation is enabled, you can only register your current nickname
|
||||
// as an account; this prevents "land-grab" situations where someone else
|
||||
// registers your nick out from under you and then NS GHOSTs you
|
||||
// n.b. client is nil during a SAREGISTER:
|
||||
if config.NickReservation.Enabled && client != nil && client.Nick() != account {
|
||||
return errAccountMustHoldNick
|
||||
}
|
||||
|
||||
// can't register a guest nickname
|
||||
renamePrefix := strings.ToLower(config.NickReservation.RenamePrefix)
|
||||
if renamePrefix != "" && strings.HasPrefix(casefoldedAccount, renamePrefix) {
|
||||
return errAccountAlreadyRegistered
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue