summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Bindings/LuaTCPLink.cpp12
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))