summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoradam- <adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-08-15 01:05:52 +0000
committeradam- <adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-08-15 01:05:52 +0000
commitece55718e73e0f3f25101d9b32c2900ac2df6849 (patch)
tree2c8656a494d7b1a295723078939659d0c68056ca /src
parentb9bf72c4572875b8d67c9423f16bf72741d5e146 (diff)
Set -r on nick change if appropriate and make nick tracking work correctly
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2451 5417fbe8-f217-4b02-8779-1006273d7864
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);