Browse Source

Prevent hang when closing TLS connection after transfer cancel

Related to 2c0b486d, 5d68c005, aff5cba7. Caused by 268f6355.

Source commit: e86e1b454952412b21774c65910d81f2d9ecf426
Martin Prikryl 4 years ago
parent
commit
3a2d8d6587
1 changed files with 2 additions and 1 deletions
  1. 2 1
      source/filezilla/AsyncSslSocketLayer.cpp

+ 2 - 1
source/filezilla/AsyncSslSocketLayer.cpp

@@ -609,7 +609,8 @@ void CAsyncSslSocketLayer::Close()
   if (!m_nShutDown && m_bSslEstablished && !m_nNetworkError && !m_nCriticalError)
   {
     ShutDown();
-    while (!ShutDownComplete() && !m_nNetworkError && !m_nCriticalError)
+    while (!ShutDownComplete() && !m_nNetworkError && !m_nCriticalError &&
+           ((m_nNetworkSendBufferLen > 0) || (BIO_ctrl_pending(m_nbio) > 0) || m_pRetrySendBuffer))
     {
       OnSend(0);
     }