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