summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2012-12-02 23:07:13 +0100
committerattilamolnar <attilamolnar@hush.com>2012-12-02 23:07:13 +0100
commit01a1d67dd1406f99821c7c5f6e491373bbd96c74 (patch)
tree7d8c608de73fa164e285f58ebba4f670f0191ff0 /src
parent8095fb6079c3416cf2aa0147154f440466a6e11d (diff)
m_remove Fix potential desync caused by committing the PART before getting acknowledgement from the target server
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_remove.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp
index 51cbf335a..ffb8f8e55 100644
--- a/src/modules/m_remove.cpp
+++ b/src/modules/m_remove.cpp
@@ -102,6 +102,10 @@ class RemoveBase : public Command
*/
if ((!IS_LOCAL(user)) || ((ulevel > VOICE_VALUE) && (ulevel >= tlevel) && (tlevel != 50000)))
{
+ // REMOVE/FPART will be sent to the target's server and it will reply with a PART (or do nothing if it doesn't understand the command)
+ if (!IS_LOCAL(target))
+ return CMD_SUCCESS;
+
std::string reasonparam;
/* If a reason is given, use it */