diff --git a/dap_client.c b/dap_client.c old mode 100755 new mode 100644 index 354dbae89932b495a97dd408c02d2ed3daa094b0..32a47fbb61b4bd24e1f66b3057238fb12bd1a246 --- a/dap_client.c +++ b/dap_client.c @@ -171,10 +171,12 @@ void dap_client_delete(dap_client_t * a_client) { if(!a_client) return; + dap_client_disconnect(a_client); if (DAP_CLIENT_PVT(a_client) ) dap_client_pvt_delete(DAP_CLIENT_PVT(a_client)); + DAP_DELETE(a_client); } @@ -289,22 +291,35 @@ void dap_client_request(dap_client_t * a_client, const char * a_full_path, void * @param a_client * @return */ -int dap_client_disconnect(dap_client_t * a_client) +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_socket ){ - close (l_client_internal->stream_socket); - l_client_internal->stream_socket = 0; - } - if(l_client_internal->stream_es) { - dap_events_socket_delete(l_client_internal->stream_es, true); - l_client_internal->stream_es = NULL; - } + 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_remove_and_delete( l_client_internal->stream_es, true ); +// l_client_internal->stream_es = NULL; +// } + +<<<<<<< HEAD +// l_client_internal->stream_es->signal_close = true; + dap_events_kill_socket( l_client_internal->stream_es ); +======= + l_client_internal->stream_es->signal_close = true; +>>>>>>> bec1af426c69b6a96e831f61603c00135bbd9305 + +// if (l_client_internal->stream_socket ) { +// close (l_client_internal->stream_socket); + l_client_internal->stream_socket = 0; +// } return 1; } //l_client_internal->stream_socket = 0; + + log_it(L_DEBUG, "dap_client_disconnect( ) done" ); + return -1; } diff --git a/dap_client_pool.c b/dap_client_pool.c old mode 100755 new mode 100644 diff --git a/dap_client_pvt.c b/dap_client_pvt.c old mode 100755 new mode 100644 index 88d11b6b6be2b552463befb5db16be3f0fc99184..0c8b85145f6703b7b819baa56c47c18d02d1ad91 --- a/dap_client_pvt.c +++ b/dap_client_pvt.c @@ -114,17 +114,21 @@ void dap_client_pvt_delete(dap_client_pvt_t * a_client_pvt) { if(!a_client_pvt) return; + if(a_client_pvt->session_key_id) DAP_DELETE(a_client_pvt->session_key_id); + if ( a_client_pvt->active_channels ) DAP_DELETE(a_client_pvt->active_channels ); + if (a_client_pvt->session_key) dap_enc_key_delete(a_client_pvt->session_key); + if (a_client_pvt->session_key_open) dap_enc_key_delete(a_client_pvt->session_key_open); + if (a_client_pvt->stream_key) dap_enc_key_delete(a_client_pvt->stream_key); - } /** @@ -831,32 +835,46 @@ void m_stage_stream_streaming(dap_client_t * a_client, void* arg) * @param a_es * @param arg */ -void m_es_stream_delete(dap_events_socket_t * a_es, void * arg) +void m_es_stream_delete( dap_events_socket_t *a_es, void *arg ) { log_it(L_INFO, "====================================================== stream delete/peer reconnect"); - dap_client_t* l_client = DAP_CLIENT(a_es); - if(l_client == NULL) { + + dap_client_t *l_client = DAP_CLIENT(a_es); + + if ( l_client == NULL ) { log_it(L_ERROR, "dap_client is not initialized"); return; } dap_client_pvt_t * l_client_pvt = DAP_CLIENT_PVT(l_client); - if(l_client_pvt == NULL) { + if( l_client_pvt == NULL ) { log_it(L_ERROR, "dap_client_pvt is not initialized"); return; } - dap_stream_delete(l_client_pvt->stream); + dap_stream_delete( l_client_pvt->stream ); l_client_pvt->stream = NULL; - if(l_client_pvt->client) - dap_client_reset(l_client_pvt->client); + + if( l_client_pvt->client ) + dap_client_reset (l_client_pvt->client ); // l_client_pvt->client= NULL; + l_client_pvt->stream_es = NULL; - dap_stream_session_close(l_client_pvt->stream_session->id); + +// log_it(L_DEBUG, "dap_stream_session_close()"); +// sleep(3); +// dap_stream_session_close(l_client_pvt->stream_session->id); + l_client_pvt->stream_session = NULL; - if (l_client_pvt->is_reconnect) + + if ( l_client_pvt->is_reconnect ) { + log_it(L_DEBUG, "l_client_pvt->is_reconnect = true"); + dap_client_go_stage(l_client_pvt->client, STAGE_STREAM_STREAMING, m_stage_stream_streaming); + } + else + log_it(L_DEBUG, "l_client_pvt->is_reconnect = false"); } /** diff --git a/libdap b/libdap index 999a4bc46231c2398a8d010dee06628965b3c478..d37b2aa26d2a7cc068529db343a87fd728904d33 160000 --- a/libdap +++ b/libdap @@ -1 +1 @@ -Subproject commit 999a4bc46231c2398a8d010dee06628965b3c478 +Subproject commit d37b2aa26d2a7cc068529db343a87fd728904d33 diff --git a/libdap-server b/libdap-server index 1b3a871d6ec93801f14081de51157bbb703593f1..2520382b703cc4308a6bb017da3b2cc5b95083b9 160000 --- a/libdap-server +++ b/libdap-server @@ -1 +1 @@ -Subproject commit 1b3a871d6ec93801f14081de51157bbb703593f1 +Subproject commit 2520382b703cc4308a6bb017da3b2cc5b95083b9 diff --git a/libdap-server-core b/libdap-server-core index 7c6065bc699760e6e66ee4e80861a3562b2366c1..e5bb9b75237cd702c5980b4070da9842d1f101e2 160000 --- a/libdap-server-core +++ b/libdap-server-core @@ -1 +1 @@ -Subproject commit 7c6065bc699760e6e66ee4e80861a3562b2366c1 +Subproject commit e5bb9b75237cd702c5980b4070da9842d1f101e2 diff --git a/libdap-server-udp b/libdap-server-udp index 19a6376646f497d97bfe1ea3fade1a907c32f76a..1668210c08275ec85f8278a80c66b50e7414d61c 160000 --- a/libdap-server-udp +++ b/libdap-server-udp @@ -1 +1 @@ -Subproject commit 19a6376646f497d97bfe1ea3fade1a907c32f76a +Subproject commit 1668210c08275ec85f8278a80c66b50e7414d61c diff --git a/libdap-stream b/libdap-stream index 8fa982b5333a4ea85429fe772987f9d84e5fb96e..550a546222f8b07c0687c9feaea32d3f2c66e87c 160000 --- a/libdap-stream +++ b/libdap-stream @@ -1 +1 @@ -Subproject commit 8fa982b5333a4ea85429fe772987f9d84e5fb96e +Subproject commit 550a546222f8b07c0687c9feaea32d3f2c66e87c diff --git a/libdap-stream-ch b/libdap-stream-ch index dfbdaa1df0498069e60ffaf42de963375bffa816..268f422bde88a5f4f254a31b7d52b18d2cad71fc 160000 --- a/libdap-stream-ch +++ b/libdap-stream-ch @@ -1 +1 @@ -Subproject commit dfbdaa1df0498069e60ffaf42de963375bffa816 +Subproject commit 268f422bde88a5f4f254a31b7d52b18d2cad71fc