Process events when destroying CoreNetwork
authorShane Synan <digitalcircuit36939@gmail.com>
Mon, 5 Sep 2016 19:07:51 +0000 (14:07 -0500)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 28 Feb 2018 22:14:25 +0000 (23:14 +0100)
commit418f497d996892ec16a31d3e282c4996e8677b3a
tree2f4fe91eab14e16fe6c87c1400a8227d94a14e25
parentddf95ecafbf6d81eb9f10dc5aec588773015e71c
Process events when destroying CoreNetwork

During shutdown, process events in CoreNetwork, and wait for the
socket to disconnect.  This fixes the QUIT command not getting sent
to IRC networks.

Examples
[Unreal 3.2]
> Before
<-- dcircuit_dev (quasseldev@hostmask.IP) has quit (Input/output error)
> After
<-- dcircuit_dev (quasseldev@hostmask.IP) has quit (Quit: My Message!)
[Freenode]
> Before
<-- dcircuit_dev (~quasselde@hostmask) has quit (Remote host closed the connection)
> After
<-- dcircuit_dev (~quasselde@hostmask) has quit (Quit: My Message!)

Where "My Message!" is specified in Configure Quassel -> IRC
-> Identities -> Advanced -> Quit Reason

Note: Freenode hides quit messages from clients that disconnect soon
after connecting.  Stay connected ~10 minutes before testing QUIT.

(cherry picked from commit 59ed0127591f946a68a6ee7f30b23deb37d26821)
src/core/corenetwork.cpp
src/core/corenetwork.h