diff options
author | Tiger Wang <ziwei.tiger@outlook.com> | 2021-03-28 22:20:13 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@outlook.com> | 2021-03-28 22:20:13 +0200 |
commit | abcc14076cc0792644d7e3abf434421369f03a75 (patch) | |
tree | a7d3cb18181d5a5473b007d192bf3e4989a96289 /src/ClientHandle.cpp | |
parent | Send keep alives slightly less frequently (diff) | |
download | cuberite-abcc14076cc0792644d7e3abf434421369f03a75.tar cuberite-abcc14076cc0792644d7e3abf434421369f03a75.tar.gz cuberite-abcc14076cc0792644d7e3abf434421369f03a75.tar.bz2 cuberite-abcc14076cc0792644d7e3abf434421369f03a75.tar.lz cuberite-abcc14076cc0792644d7e3abf434421369f03a75.tar.xz cuberite-abcc14076cc0792644d7e3abf434421369f03a75.tar.zst cuberite-abcc14076cc0792644d7e3abf434421369f03a75.zip |
Diffstat (limited to 'src/ClientHandle.cpp')
-rw-r--r-- | src/ClientHandle.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 0b99cd95c..04436070c 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -130,8 +130,9 @@ void cClientHandle::Destroy(void) { cCSLock Lock(m_CSOutgoingData); - m_Link->Shutdown(); // Cleanly close the connection - m_Link.reset(); // Release the strong reference cTCPLink holds to ourself + m_Link->Send(m_OutgoingData.data(), m_OutgoingData.size()); // Flush remaining data. + m_Link->Shutdown(); // Cleanly close the connection. + m_Link.reset(); // Release the strong reference cTCPLink holds to ourself. } } @@ -1933,9 +1934,12 @@ void cClientHandle::RemoveFromWorld(void) m_SentChunks.clear(); } + // Flush outgoing data: + ProcessProtocolOut(); + // No need to send Unload Chunk packets, the client unloads automatically. - // Here, we set last streamed values to bogus ones so everything is resent + // Here, we set last streamed values to bogus ones so everything is resent: m_LastStreamedChunkX = 0x7fffffff; m_LastStreamedChunkZ = 0x7fffffff; } @@ -2105,6 +2109,7 @@ void cClientHandle::Tick(float a_Dt) void cClientHandle::ServerTick(float a_Dt) { ProcessProtocolIn(); + ProcessProtocolOut(); m_TicksSinceLastPacket += 1; if (m_TicksSinceLastPacket > 600) // 30 seconds |