common: Fix IrcUser::quitInternal not syncing quit
authorShane Synan <digitalcircuit36939@gmail.com>
Sat, 11 Jul 2020 21:51:45 +0000 (17:51 -0400)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 4 Oct 2020 15:51:19 +0000 (17:51 +0200)
Fix the new IrcUser::quitInternal() function to call IrcUser::quit()
over the network, restoring compatibility with both old and new
Quassel clients.

Only the core needs upgraded to fix this; the client does not sync
calls to IrcUser::quit().

> Before, core + client latest
<-- kiwipre-68 ([...]) has quit (Client Quit)
2020-07-11 17:53:26 [Warn ] "no matching slot for sync call: IrcUser::quitInternal (objectName=\"2/kiwipre-68\"). Params are:" ()

> After, core + client latest
IrcUser is successfully marked as having quit, removed from nick list.

Fixes the fix in 7298446b3e86140c4bbbfe7aeeb959c16c53363c

src/common/ircuser.cpp

index ec1ecb1..de29980 100644 (file)
@@ -334,7 +334,7 @@ void IrcUser::quitInternal(bool skip_sync)
         channel->part(this);
     }
     network()->removeIrcUser(this);
-    if (!skip_sync) SYNC(NO_ARG)
+    if (!skip_sync) SYNC_OTHER(quit, NO_ARG)
     emit quited();
 }