diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2019-11-16 10:59:32 -0600 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2019-11-16 10:59:32 -0600 |
| commit | 97bdaae7d32a92e1174f443abc5e481bdf11ddf8 (patch) | |
| tree | bfe9d4f11ef4b2d15991a6842a0d57d1069700fa | |
| parent | fe3f6a3e6bd1eb58b172e54410403c695b39daf1 (diff) | |
| parent | 3d649d528a9aea786ddfcce08e0691c251933c39 (diff) | |
| download | monzero-core-97bdaae7d32a92e1174f443abc5e481bdf11ddf8.tar.gz monzero-core-97bdaae7d32a92e1174f443abc5e481bdf11ddf8.tar.xz monzero-core-97bdaae7d32a92e1174f443abc5e481bdf11ddf8.zip | |
Merge pull request #6107
3d649d5 epee: close connection when the peer has done so (moneromooo-monero)
| -rw-r--r-- | contrib/epee/include/net/abstract_tcp_server2.inl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/contrib/epee/include/net/abstract_tcp_server2.inl b/contrib/epee/include/net/abstract_tcp_server2.inl index 5d12f9466..128ff10aa 100644 --- a/contrib/epee/include/net/abstract_tcp_server2.inl +++ b/contrib/epee/include/net/abstract_tcp_server2.inl @@ -410,7 +410,12 @@ PRAGMA_WARNING_DISABLE_VS(4355) else { _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(); } m_ready_to_close = true; @@ -470,6 +475,7 @@ PRAGMA_WARNING_DISABLE_VS(4355) { MERROR("SSL handshake failed"); boost::interprocess::ipcdetail::atomic_write32(&m_want_close_connection, 1); + m_ready_to_close = true; bool do_shutdown = false; CRITICAL_REGION_BEGIN(m_send_que_lock); if(!m_send_que.size()) |
