diff options
Diffstat (limited to 'cmd_nick.go')
-rw-r--r-- | cmd_nick.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cmd_nick.go b/cmd_nick.go index 9ac3cd8..f24a7fd 100644 --- a/cmd_nick.go +++ b/cmd_nick.go @@ -22,7 +22,7 @@ func handleClientNick(msg RMsg, client *Client) error { } } } else { - if !nickToClient.CompareAndDelete(client.Nick, client) { + if (client.State >= ClientStateRegistered || client.Nick != "*") && !nickToClient.CompareAndDelete(client.Nick, client) { slog.Error("nick inconsistent", "nick", client.Nick, "client", client) return fmt.Errorf("%w: %v", ErrInconsistentClient, client) } @@ -34,7 +34,7 @@ func handleClientNick(msg RMsg, client *Client) error { } client.Nick = msg.Params[0] } - if client.State == ClientStatePreRegistration { + if client.State < ClientStateRegistered { err := client.checkRegistration() if err != nil { return err |