From 648c95b10bc1c3afb23183e5d355286ef5f18f6f Mon Sep 17 00:00:00 2001 From: w00t Date: Sat, 25 Oct 2008 14:02:11 +0000 Subject: Fix interfering with /unloadmodule m_implementing_a_umode, aquanight, you didn't look quite far enough into this - the problem was m_cloaking (e.g.) returning MODEACTION_DENY if src != dest, which was very very oooold behaviour. Seems to work fine now. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10713 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/mode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/mode.cpp') diff --git a/src/mode.cpp b/src/mode.cpp index 65ec7e614..14b465c6e 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -486,7 +486,7 @@ void ModeParser::Process(const std::vector& parameters, User *user, { type = MODETYPE_USER; mask = MASK_USER; - if ((user != targetuser) && (!ServerInstance->ULine(user->server))) + if (user != targetuser && IS_LOCAL(user) && !ServerInstance->ULine(user->server)) { user->WriteNumeric(ERR_USERSDONTMATCH, "%s :Can't change mode for other users", user->nick.c_str()); return; @@ -1165,7 +1165,7 @@ void ModeHandler::RemoveMode(User* user, irc::modestacker* stack) sprintf(moderemove,"-%c",this->GetModeChar()); parameters.push_back(user->nick); parameters.push_back(moderemove); - ServerInstance->Parser->CallHandler("MODE", parameters, user); + ServerInstance->Modes->Process(parameters, ServerInstance->FakeClient, false); } } } -- cgit v1.3.1-10-gc9f91