From f5c1e06b543cbddd5ef33e23475bfe7120fa8aaf Mon Sep 17 00:00:00 2001 From: special Date: Wed, 19 Sep 2007 16:21:12 +0000 Subject: Fixed m_saquit to direct the command to the user's server and from there send a QUIT to all servers, to prevent desyncs in services and such that don't support saquit. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8046 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_saquit.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/m_saquit.cpp b/src/modules/m_saquit.cpp index 11efd8629..7aafcc193 100644 --- a/src/modules/m_saquit.cpp +++ b/src/modules/m_saquit.cpp @@ -37,12 +37,16 @@ class cmd_saquit : public command_t user->WriteServ("990 %s :Cannot use an SA command on a u-lined client",user->nick); return CMD_FAILURE; } + irc::stringjoiner reason_join(" ", parameters, 1, pcnt - 1); std::string line = reason_join.GetJoined(); - ServerInstance->WriteOpers("*** "+std::string(user->nick)+" used SAQUIT to make "+std::string(dest->nick)+" quit with a reason of "+line); + + // Pass the command on, so the client's server can quit it properly. + if (!IS_LOCAL(dest)) + return CMD_SUCCESS; + userrec::QuitUser(ServerInstance, dest, line); - return CMD_SUCCESS; } else -- cgit v1.2.3