From 0ba1f0455dad0e147515f28fbda82362661474a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Wed, 2 Sep 2020 23:08:59 +0500 Subject: [PATCH] fixed vpn-client --- dap-sdk/net/core/dap_events_socket.c | 3 ++- .../chain-net-srv/dap_stream_ch_chain_net_srv.c | 1 + modules/service/vpn/dap_chain_net_vpn_client_tun.c | 14 ++++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c index 6c65684a56..dbf620df7b 100644 --- a/dap-sdk/net/core/dap_events_socket.c +++ b/dap-sdk/net/core/dap_events_socket.c @@ -743,7 +743,8 @@ bool dap_events_socket_check_unsafe(dap_worker_t * a_worker,dap_events_socket_t */ void dap_events_socket_remove_and_delete_mt(dap_worker_t * a_w, dap_events_socket_t *a_es ) { - dap_events_socket_queue_ptr_send( a_w->queue_es_delete, a_es ); + if(a_w) + dap_events_socket_queue_ptr_send( a_w->queue_es_delete, a_es ); } /** diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c index 7d1361e629..3c4c0bdda9 100644 --- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c +++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c @@ -597,6 +597,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg) l_client->ch = a_ch; l_client->stream_worker = a_ch->stream_worker; l_client->ts_created = time(NULL); + l_client->session_id = a_ch->stream->session->id; l_srv->callback_client_success(l_srv, l_success->hdr.usage_id, l_client, l_success, l_success_size ); //l_success->hdr.net_id, l_success->hdr.srv_uid, l_success->hdr.usage_id } diff --git a/modules/service/vpn/dap_chain_net_vpn_client_tun.c b/modules/service/vpn/dap_chain_net_vpn_client_tun.c index 4c117f905b..f0b93b1737 100644 --- a/modules/service/vpn/dap_chain_net_vpn_client_tun.c +++ b/modules/service/vpn/dap_chain_net_vpn_client_tun.c @@ -418,12 +418,12 @@ int dap_chain_net_vpn_client_tun_create(const char *a_ipv4_addr_str, const char .delete_callback = m_client_tun_delete }; - s_tun_events_socket = dap_events_socket_wrap_no_add(NULL, s_fd_tun, &l_s_callbacks); + s_tun_events_socket = dap_events_socket_wrap_no_add(dap_events_get_default(), s_fd_tun, &l_s_callbacks); s_tun_events_socket->type = DESCRIPTOR_TYPE_FILE; dap_worker_add_events_socket_auto(s_tun_events_socket); s_tun_events_socket->_inheritor = NULL; - return 0; + //return 0; //m_tunDeviceName = dev; //m_tunSocket = fd; @@ -432,10 +432,12 @@ int dap_chain_net_vpn_client_tun_create(const char *a_ipv4_addr_str, const char int dap_chain_net_vpn_client_tun_delete(void) { - pthread_mutex_lock(&s_clients_mutex); - dap_events_socket_remove_and_delete_mt(s_tun_events_socket->worker, s_tun_events_socket); - s_tun_events_socket = NULL; - pthread_mutex_unlock(&s_clients_mutex); + if(s_tun_events_socket) { + pthread_mutex_lock(&s_clients_mutex); + dap_events_socket_remove_and_delete_mt(s_tun_events_socket->worker, s_tun_events_socket); + s_tun_events_socket = NULL; + pthread_mutex_unlock(&s_clients_mutex); + } // restore previous routing if(!s_conn_name || !s_last_used_connection_name) -- GitLab