diff options
| -rw-r--r-- | user.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/user.c b/user.c index 8131c84..f2572a9 100644 --- a/user.c +++ b/user.c @@ -49,9 +49,12 @@ user_mode(char m) void user_reg(struct Peer *peer, const char *nick, const char *user, const char *real, const char *mode) { + int was_registered; unsigned long m; const char *p; + was_registered = *peer->nick && *peer->user && *peer->real; + if (nick) strlcpy(peer->nick, nick, sizeof(peer->nick)); if (user) @@ -71,7 +74,7 @@ user_reg(struct Peer *peer, const char *nick, const char *user, const char *real peer->modes |= WALLOPS; } skip: - if (*peer->nick && *peer->user && *peer->real) + if (!was_registered && *peer->nick && *peer->user && *peer->real) { peer->type = CLIENT; reply(peer, 1); |