From e92ebd7ea09530be58aeebe7253dcd7f29a6a662 Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Mon, 14 Dec 2020 19:54:35 +0700 Subject: [PATCH] [*] VPN fixes --- CMakeLists.txt | 2 +- dap-sdk/net/core/dap_events_socket.c | 37 +++++++++---- dap-sdk/net/core/dap_worker.c | 12 ++--- dap-sdk/net/core/include/dap_events_socket.h | 2 + dap-sdk/net/server/enc_server/dap_enc_http.c | 11 ++-- .../net/server/http_server/dap_http_folder.c | 2 +- modules/channel/chain/dap_stream_ch_chain.c | 12 +++-- modules/service/vpn/dap_chain_net_srv_vpn.c | 52 ++++++++++++++----- .../vpn/include/dap_chain_net_srv_vpn.h | 5 -- 9 files changed, 88 insertions(+), 47 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dfd7013c88..81616169ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.6-80") +set(CELLFRAME_SDK_NATIVE_VERSION "2.6-81") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c index ca1770fbdf..edcbf55644 100644 --- a/dap-sdk/net/core/dap_events_socket.c +++ b/dap-sdk/net/core/dap_events_socket.c @@ -137,8 +137,12 @@ dap_events_socket_t *dap_events_socket_wrap_no_add( dap_events_t *a_events, ret->events = a_events; memcpy(&ret->callbacks, a_callbacks, sizeof(ret->callbacks) ); ret->flags = DAP_SOCK_READY_TO_READ; - ret->buf_in = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, DAP_EVENTS_SOCKET_BUF + 1); - ret->buf_out = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, DAP_EVENTS_SOCKET_BUF + 1); + + ret->buf_in_size_max = DAP_EVENTS_SOCKET_BUF; + ret->buf_out_size_max = DAP_EVENTS_SOCKET_BUF; + + ret->buf_in = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, ret->buf_in_size_max + 1); + ret->buf_out = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, ret->buf_out_size_max + 1); ret->buf_in_size = ret->buf_out_size = 0; #if defined(DAP_EVENTS_CAPS_EPOLL) ret->ev_base_flags = EPOLLERR | EPOLLRDHUP | EPOLLHUP; @@ -318,7 +322,8 @@ dap_events_socket_t * dap_events_socket_queue_ptr_create_input(dap_events_socket { dap_events_socket_t * l_es = DAP_NEW_Z(dap_events_socket_t); l_es->type = DESCRIPTOR_TYPE_QUEUE; - l_es->buf_out = DAP_NEW_Z_SIZE(byte_t, 8 * sizeof(void*)); + l_es->buf_out_size_max = 8 * sizeof(void*); + l_es->buf_out = DAP_NEW_Z_SIZE(byte_t,l_es->buf_out_size_max ); //l_es->buf_out_size = 8 * sizeof(void*); l_es->events = a_es->events; #if defined(DAP_EVENTS_CAPS_EPOLL) @@ -418,6 +423,11 @@ dap_events_socket_t * s_create_type_queue_ptr(dap_worker_t * a_w, dap_events_soc l_es->worker = a_w; } l_es->callbacks.queue_ptr_callback = a_callback; // Arm event callback + if (l_es->buf_out){ + DAP_DELETE(l_es->buf_out); + l_es->buf_out_size_max =0; + + } l_es->buf_out = NULL; #if defined(DAP_EVENTS_CAPS_EPOLL) @@ -727,8 +737,8 @@ int dap_events_socket_queue_proc_input_unsafe(dap_events_socket_t * a_esocket) dap_events_socket_t * s_create_type_event(dap_worker_t * a_w, dap_events_socket_callback_event_t a_callback) { dap_events_socket_t * l_es = DAP_NEW_Z(dap_events_socket_t); if (!l_es) return NULL; - l_es->buf_out = DAP_NEW_Z_SIZE(byte_t, 1); - l_es->buf_out_size = 1; + l_es->buf_out_size_max = 1; + l_es->buf_out = DAP_NEW_Z_SIZE(byte_t, l_es->buf_out_size_max); l_es->type = DESCRIPTOR_TYPE_EVENT; if (a_w){ l_es->events = a_w->events; @@ -1137,7 +1147,9 @@ dap_events_socket_t * dap_events_socket_wrap2( dap_server_t *a_server, struct da ret->server = a_server; memcpy(&ret->callbacks,a_callbacks, sizeof ( ret->callbacks) ); - ret->buf_in = ret->buf_out = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, DAP_EVENTS_SOCKET_BUF+1); + ret->buf_out_size_max = ret->buf_in_size_max = DAP_EVENTS_SOCKET_BUF; + ret->buf_in = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, ret->buf_in_size_max+1); + ret->buf_out = a_callbacks->timer_callback ? NULL : DAP_NEW_Z_SIZE(byte_t, ret->buf_out_size_max+1); ret->buf_in_size = ret->buf_out_size = 0; ret->flags = DAP_SOCK_READY_TO_READ; ret->last_time_active = ret->last_ping_request = time( NULL ); @@ -1592,12 +1604,12 @@ size_t dap_events_socket_write_f_mt(dap_worker_t * a_w,dap_events_socket_t *a_es */ size_t dap_events_socket_write_unsafe(dap_events_socket_t *sc, const void * data, size_t data_size) { - if(sc->buf_out_size > DAP_EVENTS_SOCKET_BUF){ - log_it(L_DEBUG,"write buffer already overflow size=%u/max=%u", sc->buf_out_size, DAP_EVENTS_SOCKET_BUF); + if(sc->buf_out_size > sc->buf_out_size_max){ + log_it(L_DEBUG,"write buffer already overflow size=%u/max=%u", sc->buf_out_size, sc->buf_out_size_max); return 0; } //log_it(L_DEBUG,"dap_events_socket_write %u sock data %X size %u", sc->socket, data, data_size ); - data_size = (sc->buf_out_size + data_size < DAP_EVENTS_SOCKET_BUF) ? data_size : (DAP_EVENTS_SOCKET_BUF - sc->buf_out_size); + data_size = (sc->buf_out_size + data_size < sc->buf_out_size_max) ? data_size : (sc->buf_out_size_max - sc->buf_out_size); memcpy(sc->buf_out + sc->buf_out_size, data, data_size); sc->buf_out_size += data_size; dap_events_socket_set_writable_unsafe(sc, true); @@ -1614,10 +1626,13 @@ size_t dap_events_socket_write_f_unsafe(dap_events_socket_t *sc, const char * fo { //log_it(L_DEBUG,"dap_events_socket_write_f %u sock", sc->socket ); - size_t max_data_size = DAP_EVENTS_SOCKET_BUF - sc->buf_out_size; + size_t l_max_data_size = sc->buf_out_size_max - sc->buf_out_size; + if (! l_max_data_size) + return 0; + va_list ap; va_start(ap, format); - int ret=dap_vsnprintf((char*)sc->buf_out + sc->buf_out_size, max_data_size, format, ap); + int ret=dap_vsnprintf((char*)sc->buf_out + sc->buf_out_size, l_max_data_size, format, ap); va_end(ap); if(ret > 0) { sc->buf_out_size += (unsigned int)ret; diff --git a/dap-sdk/net/core/dap_worker.c b/dap-sdk/net/core/dap_worker.c index c8efe36d2a..37e8917935 100644 --- a/dap-sdk/net/core/dap_worker.c +++ b/dap-sdk/net/core/dap_worker.c @@ -273,7 +273,7 @@ void *dap_worker_thread(void *arg) if(l_flag_read) { //log_it(L_DEBUG, "Comes connection with type %d", l_cur->type); - if(l_cur->buf_in_size >= DAP_EVENTS_SOCKET_BUF) { + if(l_cur->buf_in_size >= l_cur->buf_in_size_max) { log_it(L_WARNING, "Buffer is full when there is smth to read. Its dropped!"); l_cur->buf_in_size = 0; } @@ -286,24 +286,24 @@ void *dap_worker_thread(void *arg) case DESCRIPTOR_TYPE_FILE: l_must_read_smth = true; #ifdef DAP_OS_WINDOWS - l_bytes_read = dap_recvfrom(l_cur->socket, l_cur->buf_in + l_cur->buf_in_size, DAP_EVENTS_SOCKET_BUF - l_cur->buf_in_size); + l_bytes_read = dap_recvfrom(l_cur->socket, l_cur->buf_in + l_cur->buf_in_size, l_cur->buf_in_size_max - l_cur->buf_in_size); #else l_bytes_read = read(l_cur->socket, (char *) (l_cur->buf_in + l_cur->buf_in_size), - sizeof(l_cur->buf_in) - l_cur->buf_in_size); + l_cur->buf_in_size_max - l_cur->buf_in_size); #endif l_errno = errno; break; case DESCRIPTOR_TYPE_SOCKET: l_must_read_smth = true; l_bytes_read = recv(l_cur->fd, (char *) (l_cur->buf_in + l_cur->buf_in_size), - DAP_EVENTS_SOCKET_BUF - l_cur->buf_in_size, 0); + l_cur->buf_in_size_max - l_cur->buf_in_size, 0); l_errno = errno; break; case DESCRIPTOR_TYPE_SOCKET_UDP: { l_must_read_smth = true; socklen_t l_size = sizeof(l_cur->remote_addr); l_bytes_read = recvfrom(l_cur->fd, (char *) (l_cur->buf_in + l_cur->buf_in_size), - DAP_EVENTS_SOCKET_BUF - l_cur->buf_in_size, 0, + l_cur->buf_in_size_max - l_cur->buf_in_size, 0, (struct sockaddr *)&l_cur->remote_addr, &l_size); l_errno = errno; @@ -374,7 +374,7 @@ void *dap_worker_thread(void *arg) } l_cur->buf_in_size += l_bytes_read; if(s_debug_reactor) - log_it(L_DEBUG, "Received %d bytes", l_bytes_read); + log_it(L_DEBUG, "Received %d bytes for fd %d ", l_bytes_read, l_cur->fd); if(l_cur->callbacks.read_callback){ l_cur->callbacks.read_callback(l_cur, NULL); // Call callback to process read event. At the end of callback buf_in_size should be zero if everything was read well if (l_cur->worker == NULL ){ // esocket was unassigned in callback, we don't need any ops with it now, diff --git a/dap-sdk/net/core/include/dap_events_socket.h b/dap-sdk/net/core/include/dap_events_socket.h index aea7be30d5..06203e8a02 100644 --- a/dap-sdk/net/core/include/dap_events_socket.h +++ b/dap-sdk/net/core/include/dap_events_socket.h @@ -178,6 +178,7 @@ typedef struct dap_events_socket { //uint8_t buf_in[DAP_EVENTS_SOCKET_BUF+1]; // Internal buffer for input data //char buf_in_str[DAP_EVENTS_SOCKET_BUF+1]; byte_t *buf_in; + size_t buf_in_size_max; // size of alloced buffer //char *buf_in_str; size_t buf_in_size; // size of data that is in the input buffer @@ -186,6 +187,7 @@ typedef struct dap_events_socket { //byte_t buf_out[DAP_EVENTS_SOCKET_BUF+1]; // Internal buffer for output data byte_t *buf_out; size_t buf_out_size; // size of data that is in the output buffer + size_t buf_out_size_max; // max size of data dap_events_socket_t * pipe_out; // Pipe socket with data for output // Stored string representation diff --git a/dap-sdk/net/server/enc_server/dap_enc_http.c b/dap-sdk/net/server/enc_server/dap_enc_http.c index 840cdb5a68..0f3bc63e25 100644 --- a/dap-sdk/net/server/enc_server/dap_enc_http.c +++ b/dap-sdk/net/server/enc_server/dap_enc_http.c @@ -103,8 +103,9 @@ void enc_http_proc(struct dap_http_simple *cl_st, void * arg) dap_enc_key_type_t l_pkey_exchange_type =DAP_ENC_KEY_TYPE_MSRLN ; dap_enc_key_type_t l_enc_type = DAP_ENC_KEY_TYPE_IAES; size_t l_pkey_exchange_size=MSRLN_PKA_BYTES; - sscanf(cl_st->http_client->in_query_string, "enc_type=%d,pkey_exchange_type=%d,pkey_exchange_size=%zd", - &l_enc_type,&l_pkey_exchange_type,&l_pkey_exchange_size); + size_t l_block_key_size=DAP_ENC_KS_KEY_ID_SIZE; + sscanf(cl_st->http_client->in_query_string, "enc_type=%d,pkey_exchange_type=%d,pkey_exchange_size=%zd,block_key_size=%zd", + &l_enc_type,&l_pkey_exchange_type,&l_pkey_exchange_size,&l_block_key_size); log_it(L_DEBUG, "Stream encryption: %s\t public key exchange: %s",dap_enc_get_type_name(l_enc_type), dap_enc_get_type_name(l_pkey_exchange_type)); @@ -150,12 +151,12 @@ void enc_http_proc(struct dap_http_simple *cl_st, void * arg) l_enc_key_ks->key = dap_enc_key_new_generate(l_enc_type, l_pkey_exchange_key->priv_key_data, // shared key l_pkey_exchange_key->priv_key_data_size, - l_enc_key_ks->id, DAP_ENC_KS_KEY_ID_SIZE, 0); + l_enc_key_ks->id, l_block_key_size, 0); dap_enc_ks_save_in_storage(l_enc_key_ks); - char encrypt_id[DAP_ENC_BASE64_ENCODE_SIZE(DAP_ENC_KS_KEY_ID_SIZE) + 1]; + char encrypt_id[DAP_ENC_BASE64_ENCODE_SIZE(l_block_key_size) + 1]; - size_t encrypt_id_size = dap_enc_base64_encode(l_enc_key_ks->id, DAP_ENC_KS_KEY_ID_SIZE, encrypt_id, DAP_ENC_DATA_TYPE_B64); + size_t encrypt_id_size = dap_enc_base64_encode(l_enc_key_ks->id, l_block_key_size, encrypt_id, DAP_ENC_DATA_TYPE_B64); encrypt_id[encrypt_id_size] = '\0'; _enc_http_write_reply(cl_st, encrypt_id, encrypt_msg); diff --git a/dap-sdk/net/server/http_server/dap_http_folder.c b/dap-sdk/net/server/http_server/dap_http_folder.c index fa2286d3e9..1d748ce158 100644 --- a/dap-sdk/net/server/http_server/dap_http_folder.c +++ b/dap-sdk/net/server/http_server/dap_http_folder.c @@ -295,7 +295,7 @@ void dap_http_folder_data_write(dap_http_client_t * cl_ht, void * arg) { (void) arg; dap_http_file_t * cl_ht_file= DAP_HTTP_FILE(cl_ht); - cl_ht->esocket->buf_out_size=fread(cl_ht->esocket->buf_out, 1, DAP_EVENTS_SOCKET_BUF + 1, cl_ht_file->fd); + cl_ht->esocket->buf_out_size=fread(cl_ht->esocket->buf_out, 1, cl_ht->esocket->buf_out_size_max + 1, cl_ht_file->fd); cl_ht_file->position+=cl_ht->esocket->buf_out_size; dap_events_socket_set_writable_unsafe(cl_ht->esocket, true); diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c index 1bde325d68..f442ce86f2 100644 --- a/modules/channel/chain/dap_stream_ch_chain.c +++ b/modules/channel/chain/dap_stream_ch_chain.c @@ -867,7 +867,7 @@ static bool s_out_pkt_callback(dap_proc_thread_t *a_thread, void *a_arg) } break; default: break; } - if (l_ch->stream->esocket->buf_out_size > DAP_EVENTS_SOCKET_BUF - DAP_CHAIN_PKT_MAX_SIZE || + if (l_ch->stream->esocket->buf_out_size + DAP_CHAIN_PKT_MAX_SIZE > l_ch->stream->esocket->buf_out_size_max || l_ch_chain->state == CHAIN_STATE_IDLE) { if (l_ch->stream->esocket->buf_out_size) { dap_stream_ch_set_ready_to_write_unsafe(l_ch, true); @@ -886,9 +886,13 @@ static bool s_out_pkt_callback(dap_proc_thread_t *a_thread, void *a_arg) void s_stream_ch_packet_out(dap_stream_ch_t* a_ch, void* a_arg) { (void) a_arg; - if (a_ch->stream->esocket->buf_out_size > DAP_EVENTS_SOCKET_BUF / 4) { - return; - } + + /// That was for what?! + /// + /// if (a_ch->stream->esocket->buf_out_size > ( a_ch->stream->esocket->buf_out_size_max / 4 )) { + /// return; + /// } + /// dap_stream_ch_set_ready_to_write_unsafe(a_ch, false); dap_stream_ch_chain_t *l_ch_chain = DAP_STREAM_CH_CHAIN(a_ch); if (l_ch_chain && l_ch_chain->state != CHAIN_STATE_IDLE) { diff --git a/modules/service/vpn/dap_chain_net_srv_vpn.c b/modules/service/vpn/dap_chain_net_srv_vpn.c index 541b19a32b..f74d371013 100644 --- a/modules/service/vpn/dap_chain_net_srv_vpn.c +++ b/modules/service/vpn/dap_chain_net_srv_vpn.c @@ -24,12 +24,18 @@ along with any DAP based project. If not, see <http://www.gnu.org/licenses/>. */ +#ifdef DAP_OS_UNIX +#include <netinet/in.h> +#include <linux/if.h> +#include <linux/if_tun.h> +#include <sys/ioctl.h> +#endif + #include <sys/select.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/epoll.h> #include <sys/un.h> -#include <sys/ioctl.h> #include <netinet/in.h> #include <netinet/ip.h> @@ -43,8 +49,6 @@ #include <errno.h> #include <signal.h> -#include <linux/if.h> -#include <linux/if_tun.h> #include "uthash.h" #include "utlist.h" @@ -274,7 +278,6 @@ static void s_tun_recv_msg_callback(dap_events_socket_t * a_esocket_queue, void assert(l_msg->esocket_reassigment.worker_id < s_tun_sockets_count); ch_sf_tun_socket_t * l_tun_sock = s_tun_sockets[a_esocket_queue->worker->id]; assert(l_tun_sock); - dap_chain_net_srv_ch_vpn_info_t * l_info = NULL; HASH_FIND(hh,l_tun_sock->clients,&l_msg->esocket_reassigment.addr , sizeof (l_msg->esocket_reassigment.addr), l_info); if (l_info){ // Updating info @@ -282,6 +285,12 @@ static void s_tun_recv_msg_callback(dap_events_socket_t * a_esocket_queue, void l_info->queue_msg = s_tun_sockets_queue_msg[l_msg->esocket_reassigment.worker_id]; l_info->is_reassigned_once = true; l_info->is_on_this_worker =(a_esocket_queue->worker->id == l_msg->esocket_reassigment.worker_id); + if(s_debug_more){ + char l_addrbuf[INET_ADDRSTRLEN]= { [0]='\0'}; + inet_ntop(AF_INET,&l_msg->esocket_reassigment.addr, l_addrbuf, sizeof (l_addrbuf)); + log_it(L_DEBUG, "Tun:%u message: addr %s reassign on worker #%u",a_esocket_queue->worker->id, + l_addrbuf, l_msg->esocket_reassigment.worker_id); + } }else{ if(dap_log_level_get() <= L_INFO){ char l_addrbuf[17]; @@ -300,7 +309,7 @@ static void s_tun_recv_msg_callback(dap_events_socket_t * a_esocket_queue, void dap_chain_net_srv_ch_vpn_info_t * l_new_info = NULL; HASH_FIND(hh,l_tun_sock->clients,&l_msg->ip_assigment.addr, sizeof (l_msg->ip_assigment.addr), l_new_info); if( l_new_info){ - char l_addrbuf[17]; + char l_addrbuf[INET_ADDRSTRLEN]= { [0]='\0'}; inet_ntop(AF_INET,&l_msg->ip_assigment.addr, l_addrbuf, sizeof (l_addrbuf)); log_it(L_WARNING, "Already assigned address %s on tun sock #%u", l_addrbuf, l_tun_sock->worker_id); }else{ @@ -314,6 +323,12 @@ static void s_tun_recv_msg_callback(dap_events_socket_t * a_esocket_queue, void l_new_info->esocket = l_msg->esocket; l_new_info->worker = dap_events_worker_get(l_msg->ip_assigment.worker_id); HASH_ADD(hh,l_tun_sock->clients, addr_ipv4, sizeof (l_new_info->addr_ipv4), l_new_info); + if(s_debug_more){ + char l_addrbuf[INET_ADDRSTRLEN]= { [0]='\0'}; + inet_ntop(AF_INET,&l_msg->ip_assigment.addr, l_addrbuf, sizeof (l_addrbuf)); + log_it(L_DEBUG, "Tun:%u message: addr %s assigned for worker #%u on tun #u",a_esocket_queue->worker->id, + l_addrbuf, l_msg->ip_assigment.worker_id); + } } }break; @@ -340,6 +355,12 @@ static void s_tun_recv_msg_callback(dap_events_socket_t * a_esocket_queue, void }break; case TUN_SOCKET_MSG_CH_VPN_SEND:{ + if(s_debug_more){ + char l_addrbuf[INET_ADDRSTRLEN]= { [0]='\0'}; + inet_ntop(AF_INET,&l_msg->ip_assigment.addr, l_addrbuf, sizeof (l_addrbuf)); + log_it(L_DEBUG, "Tun:%u message: send %zd bytes for ch vpn protocol",a_esocket_queue->worker->id, + l_msg->ch_vpn_send.pkt->header.op_data.data_size ); + } if(dap_events_socket_check_unsafe(a_esocket_queue->worker, l_msg->esocket ) ) s_tun_client_send_data_unsafe(l_msg->ch_vpn,l_msg->ch_vpn_send.pkt); DAP_DELETE(l_msg->ch_vpn_send.pkt); @@ -469,8 +490,6 @@ static dap_events_socket_t * s_tun_event_stream_create(dap_worker_t * a_worker, l_s_callbacks.error_callback = s_es_tun_error; l_s_callbacks.delete_callback = s_es_tun_delete; - s_tun_deattach_queue(a_tun_fd); - dap_events_socket_t * l_es = dap_events_socket_wrap_no_add(a_worker->events , a_tun_fd, &l_s_callbacks); l_es->type = DESCRIPTOR_TYPE_FILE; @@ -1141,6 +1160,11 @@ static void send_pong_pkt(dap_stream_ch_t* a_ch) free(pkt_out); } +/** + * @brief s_ch_packet_in_vpn_address_request + * @param a_ch + * @param a_usage + */ static void s_ch_packet_in_vpn_address_request(dap_stream_ch_t* a_ch, dap_chain_net_srv_usage_t * a_usage){ dap_chain_net_srv_ch_vpn_t *l_ch_vpn = CH_VPN(a_ch); dap_chain_net_srv_vpn_t * l_srv_vpn =(dap_chain_net_srv_vpn_t *) a_usage->service->_inhertor; @@ -1506,12 +1530,12 @@ static void s_es_tun_read(dap_events_socket_t * a_es, void * arg) size_t l_buf_in_size = a_es->buf_in_size; struct iphdr *iph = (struct iphdr*) a_es->buf_in; if (s_debug_more){ - char l_str_daddr[INET_ADDRSTRLEN]; - char l_str_saddr[INET_ADDRSTRLEN]; + char l_str_daddr[INET_ADDRSTRLEN]={[0]='\0'}; + char l_str_saddr[INET_ADDRSTRLEN]={[0]='\0'}; inet_ntop(AF_INET,&iph->daddr,l_str_daddr,sizeof (iph->daddr)); inet_ntop(AF_INET,&iph->saddr,l_str_saddr,sizeof (iph->saddr)); - log_it(L_DEBUG,"m_es_tun_read() received ip packet %s->%s size %u ", - l_str_saddr, l_str_saddr, l_buf_in_size); + log_it(L_DEBUG,"m_es_tun_read() received ip packet %s->%s tot_len: %u ", + l_str_saddr, l_str_saddr, iph->tot_len); } if(l_buf_in_size) { @@ -1534,7 +1558,7 @@ static void s_es_tun_read(dap_events_socket_t * a_es, void * arg) } s_tun_client_send_data(l_vpn_info, a_es->buf_in, l_buf_in_size); }else if(s_debug_more){ - char l_str_daddr[INET_ADDRSTRLEN]; + char l_str_daddr[INET_ADDRSTRLEN]={[0]='\0'}; inet_ntop(AF_INET,&l_in_daddr,l_str_daddr,sizeof (l_in_daddr)); log_it(L_WARNING, "Can't find route for desitnation %s",l_str_daddr); } @@ -1578,8 +1602,8 @@ static void s_es_tun_new(dap_events_socket_t * a_es, void * arg) // Create for all previous created sockets the input queue for (size_t n=0; n< s_tun_sockets_count; n++){ if (s_tun_sockets[n]){ - dap_events_socket_t * l_queue_msg_input = s_tun_sockets[n]->queue_tun_msg_input[l_worker_id] = - dap_events_socket_queue_ptr_create_input(s_tun_sockets_queue_msg[l_worker_id] ); + dap_events_socket_t * l_queue_msg_input = s_tun_sockets[n]->queue_tun_msg_input[l_worker_id] + = dap_events_socket_queue_ptr_create_input(s_tun_sockets_queue_msg[l_worker_id]); dap_events_socket_assign_on_worker_inter(l_worker->queue_es_new_input[n],l_queue_msg_input); } } diff --git a/modules/service/vpn/include/dap_chain_net_srv_vpn.h b/modules/service/vpn/include/dap_chain_net_srv_vpn.h index 6a3ee3b1a0..0051d29434 100644 --- a/modules/service/vpn/include/dap_chain_net_srv_vpn.h +++ b/modules/service/vpn/include/dap_chain_net_srv_vpn.h @@ -24,11 +24,6 @@ along with any DAP based project. If not, see <http://www.gnu.org/licenses/>. */ #pragma once -#ifdef DAP_OS_UNIX -#include <netinet/in.h> -#include <linux/if.h> -#include <linux/if_tun.h> -#endif #include "dap_config.h" #include "dap_chain_net_srv.h" -- GitLab