summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/users.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/users.c b/src/users.c
index 18baef319..0569ad60b 100644
--- a/src/users.c
+++ b/src/users.c
@@ -730,8 +730,15 @@ User *do_nick(const char *source, const char *nick, const char *username, const
if (!nc_changed)
{
NickAlias *tmpcore = findnick(user->nick);
+
if (tmpcore)
tmpcore->status |= status;
+
+ /* If the new nick isnt registerd or its registerd and not yours */
+ if (!tmpcore || (old_na && tmpcore->nc != old_na->nc))
+ {
+ ircdproto->SendUnregisteredNick(user);
+ }
}
else
{
@@ -757,7 +764,7 @@ User *do_nick(const char *source, const char *nick, const char *username, const
nc_changed = 0;
}
- if (nc_changed || !nick_recognized(user))
+ if (!ntmp || ntmp->nc != user->nc || nc_changed)
{
if (validate_user(user))
check_memos(user);