diff --git a/net/stream/session/dap_stream_session.c b/net/stream/session/dap_stream_session.c index 1dcfa0c62168210cf60170b677c5b31e0dbfe74b..5c1cb1a29a18aa997e723c3b7eb43a638bcfa1b2 100644 --- a/net/stream/session/dap_stream_session.c +++ b/net/stream/session/dap_stream_session.c @@ -64,6 +64,32 @@ void dap_stream_session_deinit() pthread_mutex_unlock(&sessions_mutex); } +/** + * + * note: dap_stream_session_get_list_sessions_unlock() must be run after this function + */ +dap_list_t* dap_stream_session_get_list_sessions(void) +{ + dap_list_t *l_list = NULL; + dap_stream_session_t *current, *tmp; + pthread_mutex_lock(&sessions_mutex); + HASH_ITER(hh, sessions, current, tmp) + { + l_list = dap_list_append(l_list, current); + //dap_chain_net_srv_stream_session_t * l_srv_session = current->_inheritor; + //if(l_srv_session) { + //dap_net_stats_t *l_stats = DAP_NEW(dap_net_stats_t); + //memcpy(l_stats, l_srv_session->stats); + //l_list = dap_list_append(l_list, l_stats); + //} + } + return l_list; +} + +void dap_stream_session_get_list_sessions_unlock(void) +{ + pthread_mutex_unlock(&sessions_mutex); +} static void * session_check(void * data) { diff --git a/net/stream/session/include/dap_stream_session.h b/net/stream/session/include/dap_stream_session.h index 921c9ff700227301a39eef1d946e699925796eb7..9106aca423520d4cafad1ab2de868acf32e2ffe2 100644 --- a/net/stream/session/include/dap_stream_session.h +++ b/net/stream/session/include/dap_stream_session.h @@ -31,6 +31,7 @@ #include "uthash.h" #include "dap_enc_key.h" #include "dap_hash.h" +#include "dap_list.h" typedef enum stream_session_type {STREAM_SESSION_TYPE_MEDIA=0,STREAM_SESSION_TYPE_VPN} stream_session_type_t; typedef enum stream_session_connection_type {STEAM_SESSION_HTTP = 0, STREAM_SESSION_UDP, STREAM_SESSION_END_TYPE} stream_session_connection_type_t; @@ -69,6 +70,8 @@ typedef struct dap_stream_session dap_stream_session_t; void dap_stream_session_init(); void dap_stream_session_deinit(); +dap_list_t* dap_stream_session_get_list_sessions(void); +void dap_stream_session_get_list_sessions_unlock(void); dap_stream_session_t * dap_stream_session_pure_new(); dap_stream_session_t * dap_stream_session_new(unsigned int media_id, bool open_preview);