diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-06-03 05:59:59 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-06-03 05:59:59 +0000 |
commit | f43f6c386431dfc2e7668916b4582a98c18ca6c3 (patch) | |
tree | 0bb7a1920b3e6203e37441e03ef4e971869ee5c9 | |
parent | 6d87e0eb72511b25693789fea6ce2658fd5fad7d (diff) |
Keep track of what IRCds set -r on nick change and dont inform us to keep the modemanager/modestacker in sync
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2996 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | src/protocol/ratbox.c | 2 | ||||
-rw-r--r-- | src/protocol/unreal32.c | 2 | ||||
-rw-r--r-- | src/users.c | 18 |
3 files changed, 8 insertions, 14 deletions
diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c index 3c589e98e..6832baa10 100644 --- a/src/protocol/ratbox.c +++ b/src/protocol/ratbox.c @@ -41,7 +41,7 @@ IRCDVar myIrcd[] = { 0, /* O:LINE */ 0, /* VHOST ON NICK */ 0, /* Change RealName */ - 0, /* On nick change check if they could be identified */ + 1, /* On nick change check if they could be identified */ 0, /* No Knock requires +i */ 0, /* We support TOKENS */ 0, /* TIME STAMPS are BASE64 */ diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c index f26eec067..5da7c8b86 100644 --- a/src/protocol/unreal32.c +++ b/src/protocol/unreal32.c @@ -43,7 +43,7 @@ IRCDVar myIrcd[] = { 1, /* UMODE */ 1, /* VHOST ON NICK */ 1, /* Change RealName */ - 0, /* On nick change check if they could be identified */ + 1, /* On nick change check if they could be identified */ 1, /* No Knock requires +i */ 1, /* We support Unreal TOKENS */ 1, /* TIME STAMPS are BASE64 */ diff --git a/src/users.c b/src/users.c index fd815f5c6..57e392bc4 100644 --- a/src/users.c +++ b/src/users.c @@ -980,9 +980,12 @@ User *do_nick(const char *source, const char *nick, const char *username, const /* On nick change -r gets set on nick changes but we aren't informed about it, causing SetMode(UMODE_REGISTERED) * to fail (we think it is already set). Remove it silently like the IRCds */ - UserMode *um = ModeManager::FindUserModeByName(UMODE_REGISTERED); - if (um) - user->RemoveModeInternal(um); + if (ircd->check_nick_id) + { + UserMode *um = ModeManager::FindUserModeByName(UMODE_REGISTERED); + if (um) + user->RemoveModeInternal(um); + } std::string oldnick = user->nick; user->SetNewNick(nick); @@ -1008,15 +1011,6 @@ User *do_nick(const char *source, const char *nick, const char *username, const Alog() << Config.s_NickServ << ": " << user->GetMask() << " automatically identified for group " << user->Account()->display; } - /* Bahamut sets -r on every nick change */ - if (ircd->check_nick_id) - { - if (na && na->nc == user->Account()) - { - user->SetMode(findbot(Config.s_NickServ), UMODE_REGISTERED); - } - } - if (ircd->sqline) { if (!is_oper(user) && check_sqline(user->nick.c_str(), 1)) |