diff --git a/dap_client.c b/dap_client.c index ed7d21d0aabcad1ba697fdc545b14c66c170a609..02f2d730b972b1f8ee466ec7b50edf9c9e9ac9bb 100755 --- a/dap_client.c +++ b/dap_client.c @@ -294,7 +294,7 @@ int dap_client_disconnect(dap_client_t * a_client) dap_client_pvt_t * l_client_internal = (a_client) ? DAP_CLIENT_PVT(a_client) : NULL; if(l_client_internal && l_client_internal->stream_socket){ if(l_client_internal->stream_es) { - dap_events_socket_delete(l_client_internal->stream_es, false); + dap_events_socket_delete(l_client_internal->stream_es, true); l_client_internal->stream_es = NULL; } else if (l_client_internal->stream_socket ){ diff --git a/dap_client_pvt.c b/dap_client_pvt.c index 79800be8a128180e97b249cfeea452bef3e7107d..88d11b6b6be2b552463befb5db16be3f0fc99184 100755 --- a/dap_client_pvt.c +++ b/dap_client_pvt.c @@ -855,7 +855,8 @@ void m_es_stream_delete(dap_events_socket_t * a_es, void * arg) l_client_pvt->stream_es = NULL; dap_stream_session_close(l_client_pvt->stream_session->id); l_client_pvt->stream_session = NULL; - dap_client_go_stage(l_client_pvt->client, STAGE_STREAM_STREAMING, m_stage_stream_streaming); + if (l_client_pvt->is_reconnect) + dap_client_go_stage(l_client_pvt->client, STAGE_STREAM_STREAMING, m_stage_stream_streaming); } /** diff --git a/dap_client_pvt.h b/dap_client_pvt.h index a9785f9cb553b9a9ceeb36d635fb65db709767a3..38a812107dfe0afee6bbb3bec15d1dbc70fc2b33 100755 --- a/dap_client_pvt.h +++ b/dap_client_pvt.h @@ -72,6 +72,7 @@ typedef struct dap_client_internal dap_client_callback_t stage_status_error_callback; bool is_encrypted; + bool is_reconnect; bool is_close_session;// the last request in session, in the header will be added "SessionCloseAfterRequest: true" dap_client_callback_data_size_t request_response_callback; dap_client_callback_int_t request_error_callback;