diff options
Diffstat (limited to 'src/Bindings/LuaTCPLink.cpp')
-rw-r--r-- | src/Bindings/LuaTCPLink.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Bindings/LuaTCPLink.cpp b/src/Bindings/LuaTCPLink.cpp index d88c41120..deaba9d86 100644 --- a/src/Bindings/LuaTCPLink.cpp +++ b/src/Bindings/LuaTCPLink.cpp @@ -416,9 +416,10 @@ void cLuaTCPLink::OnReceivedData(const char * a_Data, size_t a_Length) } // If we're running in SSL mode, put the data into the SSL decryptor: - if (m_SslContext != nullptr) + auto sslContext = m_SslContext; + if (sslContext != nullptr) { - m_SslContext->StoreReceivedData(a_Data, a_Length); + sslContext->StoreReceivedData(a_Data, a_Length); return; } @@ -442,6 +443,13 @@ void cLuaTCPLink::OnRemoteClosed(void) return; } + // If running in SSL mode and there's data left in the SSL contect, report it: + auto sslContext = m_SslContext; + if (sslContext != nullptr) + { + sslContext->FlushBuffers(); + } + // Call the callback: cPluginLua::cOperation Op(m_Plugin); if (!Op().Call(cLuaState::cTableRef(m_Callbacks, "OnRemoteClosed"), this)) |