From 6fdea28236771ee1d90a6fc959075c79939ad566 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 8 Dec 2024 13:57:25 +0800 Subject: CAP: Primitive negotiation --- cmd_nick.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cmd_nick.go') 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 -- cgit v1.2.3