From 0ca76bbd8731b2f55d5692e4fc6974722d70cb7d Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Mon, 7 Sep 2020 21:18:47 +0700 Subject: [PATCH] [*] dap_server_events_socket_new() became private function [*] Switched from non-blocked sockets to blocked --- CMakeLists.txt | 2 +- dap-sdk/net/core/dap_server.c | 12 +++++++----- dap-sdk/net/core/include/dap_events_socket.h | 9 +++------ dap-sdk/net/core/include/dap_server.h | 2 -- dap-sdk/net/core/include/dap_worker.h | 7 ++++--- modules/service/vpn/dap_chain_net_srv_vpn.c | 2 +- 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4bf1b9b3ee..19e2c13030 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.5-8") +set(CELLFRAME_SDK_NATIVE_VERSION "2.5-9") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") diff --git a/dap-sdk/net/core/dap_server.c b/dap-sdk/net/core/dap_server.c index 24fe29c0bd..41fe2385da 100644 --- a/dap-sdk/net/core/dap_server.c +++ b/dap-sdk/net/core/dap_server.c @@ -58,10 +58,12 @@ #define LOG_TAG "dap_server" +static dap_events_socket_t * s_es_server_create(dap_events_t * a_events, int a_sock, + dap_events_socket_callbacks_t * a_callbacks, dap_server_t * a_server); + static void s_es_server_accept(dap_events_socket_t *a_es, int a_remote_socket, struct sockaddr* a_remote_addr); static void s_es_server_error(dap_events_socket_t *a_es, int a_arg); static void s_es_server_new(dap_events_socket_t *a_es, void * a_arg); - static void s_server_delete(dap_server_t * a_server); /** * @brief dap_server_init @@ -148,7 +150,7 @@ dap_server_t* dap_server_new(dap_events_t *a_events, const char * a_addr, uint16 listen(l_server->socket_listener, SOMAXCONN); } - fcntl( l_server->socket_listener, F_SETFL, O_NONBLOCK); + //fcntl( l_server->socket_listener, F_SETFL, O_NONBLOCK); pthread_mutex_init(&l_server->started_mutex,NULL); pthread_cond_init(&l_server->started_cond,NULL); @@ -229,7 +231,7 @@ static void s_es_server_accept(dap_events_socket_t *a_es, int a_remote_socket, s dap_events_socket_t * l_es_new = NULL; log_it(L_DEBUG, "Listening socket (binded on %s:%u) got new incomming connection",l_server->address,l_server->port); log_it(L_DEBUG, "Accepted new connection (sock %d from %d)", a_remote_socket, a_es->socket); - l_es_new = dap_server_events_socket_new(a_es->events,a_remote_socket,&l_server->client_callbacks,l_server); + l_es_new = s_es_server_create(a_es->events,a_remote_socket,&l_server->client_callbacks,l_server); //l_es_new->is_dont_reset_write_flag = true; // By default all income connection has this flag getnameinfo(a_remote_addr,a_remote_addr_size, l_es_new->hostaddr , sizeof(l_es_new->hostaddr),l_es_new->service,sizeof(l_es_new->service), @@ -241,14 +243,14 @@ static void s_es_server_accept(dap_events_socket_t *a_es, int a_remote_socket, s /** - * @brief dap_server_events_socket_new + * @brief s_esocket_new * @param a_events * @param a_sock * @param a_callbacks * @param a_server * @return */ -dap_events_socket_t * dap_server_events_socket_new(dap_events_t * a_events, int a_sock, +static dap_events_socket_t * s_es_server_create(dap_events_t * a_events, int a_sock, dap_events_socket_callbacks_t * a_callbacks, dap_server_t * a_server) { dap_events_socket_t * ret = NULL; diff --git a/dap-sdk/net/core/include/dap_events_socket.h b/dap-sdk/net/core/include/dap_events_socket.h index cf9a008d8d..81bf6a0098 100644 --- a/dap-sdk/net/core/include/dap_events_socket.h +++ b/dap-sdk/net/core/include/dap_events_socket.h @@ -91,12 +91,9 @@ typedef struct dap_events_socket_callbacks { union{ dap_events_socket_callback_accept_t accept_callback; // Accept callback for listening socket dap_events_socket_callback_timer_t timer_callback; // Timer callback for listening socket - dap_events_socket_callback_event_t event_callback; // Timer callback for listening socket - dap_events_socket_callback_queue_t queue_callback; // Timer callback for listening socket - dap_events_socket_callback_queue_ptr_t queue_ptr_callback; // Timer callback for listening socket - dap_events_socket_callback_t action_callback; // Callback for action with socket - // for events and timers thats pointer - // to processing callback + dap_events_socket_callback_event_t event_callback; // Event callback for listening socket + dap_events_socket_callback_queue_t queue_callback; // Queue callback for listening socket + dap_events_socket_callback_queue_ptr_t queue_ptr_callback; // queue_ptr callback for listening socket }; dap_events_socket_callback_t new_callback; // Create new client callback dap_events_socket_callback_t delete_callback; // Delete client callback diff --git a/dap-sdk/net/core/include/dap_server.h b/dap-sdk/net/core/include/dap_server.h index f22ea64696..44bf62135e 100644 --- a/dap-sdk/net/core/include/dap_server.h +++ b/dap-sdk/net/core/include/dap_server.h @@ -86,5 +86,3 @@ int dap_server_init( ); // Init server module void dap_server_deinit( void ); // Deinit server module dap_server_t* dap_server_new(dap_events_t *a_events, const char * a_addr, uint16_t a_port, dap_server_type_t a_type); -dap_events_socket_t * dap_server_events_socket_new(dap_events_t * a_events, int a_sock, - dap_events_socket_callbacks_t * a_callbacks, dap_server_t * a_server); diff --git a/dap-sdk/net/core/include/dap_worker.h b/dap-sdk/net/core/include/dap_worker.h index cb08c3dbeb..eb02022f63 100644 --- a/dap-sdk/net/core/include/dap_worker.h +++ b/dap-sdk/net/core/include/dap_worker.h @@ -31,8 +31,8 @@ typedef struct dap_worker { uint32_t id; - dap_events_t *events; - dap_proc_queue_t * proc_queue; + dap_events_t* events; + dap_proc_queue_t* proc_queue; atomic_uint event_sockets_count; dap_events_socket_t *esockets; // Hashmap of event sockets @@ -45,8 +45,9 @@ typedef struct dap_worker dap_events_socket_t * queue_callback; // Queue for pure callback on worker dap_timerfd_t * timer_check_activity; +#ifdef DAP_EVENTS_CAPS_EPOLL EPOLL_HANDLE epoll_fd; - +#endif pthread_cond_t started_cond; pthread_mutex_t started_mutex; void * _inheritor; diff --git a/modules/service/vpn/dap_chain_net_srv_vpn.c b/modules/service/vpn/dap_chain_net_srv_vpn.c index 9aa788be20..92b9e01682 100644 --- a/modules/service/vpn/dap_chain_net_srv_vpn.c +++ b/modules/service/vpn/dap_chain_net_srv_vpn.c @@ -572,7 +572,7 @@ int s_vpn_tun_create(dap_config_t * g_config) dap_worker_t * l_worker = dap_events_worker_get(i); assert( l_worker ); int l_tun_fd; - if( (l_tun_fd = open("/dev/net/tun", O_RDWR| O_NONBLOCK)) < 0 ) { + if( (l_tun_fd = open("/dev/net/tun", O_RDWR)) < 0 ) { log_it(L_ERROR,"Opening /dev/net/tun error: '%s'", strerror(errno)); err = -100; break; -- GitLab