From 847a971dd3306bc1daf84e46172e6a15b3acbf28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Thu, 12 Dec 2019 13:59:22 +0500 Subject: [PATCH] fixed initialize vpn service --- dap_chain_net_srv_vpn.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dap_chain_net_srv_vpn.c b/dap_chain_net_srv_vpn.c index 5502bc9..90a0907 100755 --- a/dap_chain_net_srv_vpn.c +++ b/dap_chain_net_srv_vpn.c @@ -479,6 +479,12 @@ void s_new(dap_stream_ch_t* a_stream_ch, void* a_arg) a_stream_ch->internal = DAP_NEW_Z(dap_chain_net_srv_ch_vpn_t); dap_chain_net_srv_ch_vpn_t * l_srv_vpn = CH_VPN(a_stream_ch); + + if(a_stream_ch->stream->session->_inheritor == NULL && a_stream_ch->stream->session != NULL) + dap_chain_net_srv_stream_session_create(a_stream_ch->stream->session); + dap_chain_net_srv_uid_t l_uid = { .uint64 = DAP_CHAIN_NET_SRV_VPN_ID }; + l_srv_vpn->net_srv = dap_chain_net_srv_get(l_uid); + dap_chain_net_srv_stream_session_t * l_srv_session = (dap_chain_net_srv_stream_session_t *) a_stream_ch->stream->session->_inheritor; pthread_mutex_init(&l_srv_vpn->mutex, NULL); l_srv_vpn->raw_l3_sock = socket(PF_INET, SOCK_RAW, IPPROTO_RAW); @@ -525,7 +531,9 @@ void srv_ch_vpn_delete(dap_stream_ch_t* ch, void* arg) } pthread_rwlock_wrlock(&s_clients_rwlock); - HASH_DEL(s_ch_vpn_addrs,l_ch_vpn); + if(s_ch_vpn_addrs) { + HASH_DEL(s_ch_vpn_addrs, l_ch_vpn); + } if ( l_is_unleased ){ // If unleased dap_chain_net_srv_vpn_item_ipv4_t * l_item_unleased = DAP_NEW_Z(dap_chain_net_srv_vpn_item_ipv4_t); @@ -549,7 +557,9 @@ void srv_ch_vpn_delete(dap_stream_ch_t* ch, void* arg) HASH_ITER(hh, l_ch_vpn->socks , cur, tmp) { log_it(L_DEBUG, "delete socket: %i", cur->sock); - HASH_DEL(l_ch_vpn->socks, cur); + if(l_ch_vpn->socks){ + HASH_DEL(l_ch_vpn->socks, cur); + } if(cur) free(cur); } -- GitLab