Merge pull request #6107

3d649d5 epee: close connection when the peer has done so (moneromooo-monero)
This commit is contained in:
luigi1111 2019-11-16 10:59:32 -06:00
commit 97bdaae7d3
No known key found for this signature in database
GPG key ID: F4ACA0183641E010

View file

@ -410,7 +410,12 @@ PRAGMA_WARNING_DISABLE_VS(4355)
else else
{ {
_dbg3("[sock " << socket().native_handle() << "] peer closed connection"); _dbg3("[sock " << socket().native_handle() << "] peer closed connection");
if (m_ready_to_close) bool do_shutdown = false;
CRITICAL_REGION_BEGIN(m_send_que_lock);
if(!m_send_que.size())
do_shutdown = true;
CRITICAL_REGION_END();
if (m_ready_to_close || do_shutdown)
shutdown(); shutdown();
} }
m_ready_to_close = true; m_ready_to_close = true;
@ -470,6 +475,7 @@ PRAGMA_WARNING_DISABLE_VS(4355)
{ {
MERROR("SSL handshake failed"); MERROR("SSL handshake failed");
boost::interprocess::ipcdetail::atomic_write32(&m_want_close_connection, 1); boost::interprocess::ipcdetail::atomic_write32(&m_want_close_connection, 1);
m_ready_to_close = true;
bool do_shutdown = false; bool do_shutdown = false;
CRITICAL_REGION_BEGIN(m_send_que_lock); CRITICAL_REGION_BEGIN(m_send_que_lock);
if(!m_send_que.size()) if(!m_send_que.size())