From 10f15c9c786e7d6cb3fb2bed63e6792c60d65f7a Mon Sep 17 00:00:00 2001
From: "Constantin P." <papizh.konstantin@demlabs.net>
Date: Tue, 18 Feb 2025 08:26:15 +0000
Subject: [PATCH] v1

---
 core/include/dap_common.h              | 19 +++++++++++--------
 global-db/dap_global_db_cluster.c      |  6 +-----
 io/dap_server.c                        | 12 ++++++++++--
 io/include/dap_server.h                |  5 +++--
 net/link_manager/dap_link_manager.c    | 20 ++++++++++----------
 net/server/json_rpc/src/dap_json_rpc.c |  3 ++-
 net/stream/stream/dap_stream_cluster.c |  6 +-----
 7 files changed, 38 insertions(+), 33 deletions(-)

diff --git a/core/include/dap_common.h b/core/include/dap_common.h
index 539423e0f..80ae791c6 100755
--- a/core/include/dap_common.h
+++ b/core/include/dap_common.h
@@ -267,14 +267,17 @@ static inline void *s_vm_extend(const char *a_rtn_name, int a_rtn_line, void *a_
 #define DAP_REALLOC_RET_IF_FAIL(p, s, ...)      DAP_REALLOC_RET_VAL_IF_FAIL(p, s, , __VA_ARGS__)
 #define DAP_REALLOC_COUNT_RET_IF_FAIL(p, c, ...) DAP_REALLOC_COUNT_RET_VAL_IF_FAIL(p, c, , __VA_ARGS__)
 
-#define dap_return_val_if_pass_err(e, r, s) do { if (e) { _log_it(__FUNCTION__, __LINE__, LOG_TAG, L_WARNING, "%s", s); return r; } } while(0);
-#define dap_return_val_if_fail_err(e, r, s) dap_return_val_if_pass_err(!(e), r, s)
-#define dap_return_val_if_pass(e, r)    dap_return_val_if_pass_err(e, r, c_error_sanity_check)
-#define dap_return_val_if_fail(e, r)    dap_return_val_if_fail_err(e, r, c_error_sanity_check)
-#define dap_return_if_pass_err(e, s)    dap_return_val_if_pass_err(e, , s)
-#define dap_return_if_fail_err(e, s)    dap_return_val_if_fail_err(e, , s)
-#define dap_return_if_pass(e)   dap_return_if_pass_err(e, c_error_sanity_check)
-#define dap_return_if_fail(e)   dap_return_if_fail_err(e, c_error_sanity_check)
+#define dap_return_val_if_pass_err(e, r, ...) do { \
+    if (e) { _log_it(__FUNCTION__, __LINE__, LOG_TAG, L_ERROR, ##__VA_ARGS__); return r; } \
+} while(0);
+
+#define dap_return_val_if_fail_err(e, r, ...)   dap_return_val_if_pass_err(!(e), r, ##__VA_ARGS__)
+#define dap_return_val_if_pass(e, r)            dap_return_val_if_pass_err(e, r, "%s", c_error_sanity_check)
+#define dap_return_val_if_fail(e, r)            dap_return_val_if_fail_err(e, r, "%s", c_error_sanity_check)
+#define dap_return_if_pass_err(e, ...)          dap_return_val_if_pass_err(e, , ##__VA_ARGS__)
+#define dap_return_if_fail_err(e, ...)          dap_return_val_if_fail_err(e, , ##__VA_ARGS__)
+#define dap_return_if_pass(e)   dap_return_if_pass_err(e, "%s", c_error_sanity_check)
+#define dap_return_if_fail(e)   dap_return_if_fail_err(e, "%s", c_error_sanity_check)
 
 #ifndef __cplusplus
 #define DAP_IS_ALIGNED(p) !((uintptr_t)DAP_CAST_PTR(void, p) % _Alignof(typeof(p)))
diff --git a/global-db/dap_global_db_cluster.c b/global-db/dap_global_db_cluster.c
index 478cae199..6beadf9bf 100644
--- a/global-db/dap_global_db_cluster.c
+++ b/global-db/dap_global_db_cluster.c
@@ -103,11 +103,7 @@ dap_global_db_cluster_t *dap_global_db_cluster_add(dap_global_db_instance_t *a_d
             return NULL;
         }
     }
-    dap_global_db_cluster_t *l_cluster = DAP_NEW_Z(dap_global_db_cluster_t);
-    if (!l_cluster) {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-        return NULL;
-    }
+    dap_global_db_cluster_t *l_cluster = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_global_db_cluster_t, NULL);
     if (a_mnemonim)
         l_cluster->links_cluster = dap_cluster_by_mnemonim(a_mnemonim);
     if (!l_cluster->links_cluster) {
diff --git a/io/dap_server.c b/io/dap_server.c
index 5fdd0ac67..d3e1beeae 100644
--- a/io/dap_server.c
+++ b/io/dap_server.c
@@ -75,6 +75,8 @@
 
 #define LOG_TAG "dap_server"
 
+bool s_server_enabled = false;
+
 static void s_es_server_new     (dap_events_socket_t *a_es, void *a_arg);
 static void s_es_server_accept  (dap_events_socket_t *a_es_listener, SOCKET a_remote_socket, struct sockaddr_storage *a_remote_addr);
 static void s_es_server_error   (dap_events_socket_t *a_es, int a_arg);
@@ -87,7 +89,12 @@ static dap_server_t* s_default_server = NULL;
  */
 int dap_server_init()
 {
-    return log_it(L_NOTICE, "Server module initialized"), 0;
+    s_server_enabled = dap_config_get_item_bool_default(g_config, "server", "enabled", false);
+    return debug_if(s_server_enabled, L_INFO, "Server module initialized"), 0;
+}
+
+bool dap_server_enabled() {
+    return s_server_enabled;
 }
 
 /**
@@ -275,7 +282,8 @@ dap_server_t *dap_server_new(const char *a_cfg_section, dap_events_socket_callba
         for (i = 0; i < l_count; ++i) {
             char l_cur_ip[INET6_ADDRSTRLEN] = { '\0' }; uint16_t l_cur_port = 0;
             if ( 0 > dap_net_parse_config_address( l_addrs[i], l_cur_ip, &l_cur_port, NULL, NULL) ) {
-                log_it( L_ERROR, "Incorrect format of address \"%s\", fix net config and restart node", l_addrs[i] );
+                log_it( L_ERROR, "Incorrect format of address \"%s\", fix [server] section in cellframe-node.cfg and restart",
+                                 l_addrs[i] );
                 continue;
             }
             if ( !l_cur_port ) // Probably need old format
diff --git a/io/include/dap_server.h b/io/include/dap_server.h
index e70ff6948..4b83316c3 100644
--- a/io/include/dap_server.h
+++ b/io/include/dap_server.h
@@ -57,8 +57,9 @@ typedef struct dap_server {
     bool ext_log;
 } dap_server_t;
 
-int dap_server_init( ); // Init server module
-void  dap_server_deinit( void ); // Deinit server module
+int dap_server_init();
+void dap_server_deinit();
+bool dap_server_enabled();
 
 void dap_server_set_default(dap_server_t* a_server);
 dap_server_t* dap_server_get_default();
diff --git a/net/link_manager/dap_link_manager.c b/net/link_manager/dap_link_manager.c
index 082a0f211..c67222399 100644
--- a/net/link_manager/dap_link_manager.c
+++ b/net/link_manager/dap_link_manager.c
@@ -69,7 +69,7 @@ static void s_link_manager_print_links_info(dap_link_manager_t *a_link_manager);
 
 static dap_list_t *s_find_net_item_by_id(uint64_t a_net_id)
 {
-    dap_return_val_if_pass_err(!s_link_manager, NULL, s_init_error);
+    dap_return_val_if_pass_err(!s_link_manager, NULL, "%s", s_init_error);
     dap_return_val_if_pass(!a_net_id, NULL);
     dap_list_t *l_item = NULL;
     DL_FOREACH(s_link_manager->nets, l_item)
@@ -233,7 +233,7 @@ int dap_link_manager_init(const dap_link_manager_callbacks_t *a_callbacks)
 void dap_link_manager_deinit()
 {
 // sanity check
-    dap_return_if_pass_err(!s_link_manager, s_init_error);
+    dap_return_if_pass_err(!s_link_manager, "%s", s_init_error);
 // func work
     dap_link_manager_set_condition(false);
     dap_link_t *l_link = NULL, *l_link_tmp;
@@ -434,7 +434,7 @@ bool dap_link_manager_get_net_condition(uint64_t a_net_id)
 static dap_link_t *s_link_manager_link_find(dap_stream_node_addr_t *a_node_addr)
 {
 // sanity check
-    dap_return_val_if_pass_err(!s_link_manager, NULL, s_init_error);
+    dap_return_val_if_pass_err(!s_link_manager, NULL, "%s", s_init_error);
     dap_return_val_if_pass(!a_node_addr || !a_node_addr->uint64, NULL);
     dap_link_t *ret = NULL;
     HASH_FIND(hh, s_link_manager->links, a_node_addr, sizeof(*a_node_addr), ret);
@@ -738,7 +738,7 @@ void s_links_request(dap_link_manager_t *a_link_manager)
 void s_update_states(void *a_arg)
 {
 // sanity check
-    dap_return_if_pass_err(!s_link_manager, s_init_error);
+    dap_return_if_pass_err(!s_link_manager, "%s", s_init_error);
     assert(a_arg == s_link_manager);
     dap_link_manager_t *l_link_manager = a_arg;
     // if inactive return
@@ -804,7 +804,7 @@ DAP_STATIC_INLINE dap_link_t *s_link_manager_downlink_create(dap_stream_node_add
 inline int dap_link_manager_link_create(dap_stream_node_addr_t *a_node_addr, uint64_t a_associated_net_id)
 {
 // sanity check
-    dap_return_val_if_pass_err(!s_link_manager, -3, s_init_error);
+    dap_return_val_if_pass_err(!s_link_manager, -3, "%s", s_init_error);
     dap_return_val_if_pass(!a_node_addr || !a_node_addr->uint64, -5);
     if (a_node_addr->uint64 == g_node_addr.uint64)
         return -1;
@@ -917,7 +917,7 @@ int dap_link_manager_link_update(dap_stream_node_addr_t *a_node_addr, const char
  */
 bool dap_link_manager_link_find(dap_stream_node_addr_t *a_node_addr, uint64_t a_net_id)
 {
-    dap_return_val_if_pass_err(!s_link_manager, NULL, s_init_error);
+    dap_return_val_if_pass_err(!s_link_manager, NULL, "%s", s_init_error);
     dap_return_val_if_pass(!a_node_addr || !a_node_addr->uint64, NULL);
     dap_link_t *l_link = NULL;
     pthread_rwlock_rdlock(&s_link_manager->links_lock);
@@ -1167,7 +1167,7 @@ void dap_link_manager_accounting_link_in_net(uint64_t a_net_id, dap_stream_node_
 DAP_INLINE void dap_link_manager_set_condition(bool a_new_condition)
 {
 // sanity check
-    dap_return_if_pass_err(!s_link_manager, s_init_error);
+    dap_return_if_pass_err(!s_link_manager, "%s", s_init_error);
     s_link_manager->active = a_new_condition;
 }
 
@@ -1178,7 +1178,7 @@ DAP_INLINE void dap_link_manager_set_condition(bool a_new_condition)
 DAP_INLINE bool dap_link_manager_get_condition()
 {
 // sanity check
-    dap_return_val_if_pass_err(!s_link_manager, false, s_init_error);
+    dap_return_val_if_pass_err(!s_link_manager, false, "%s", s_init_error);
 // func work
     return s_link_manager->active;
 }
@@ -1191,7 +1191,7 @@ DAP_INLINE bool dap_link_manager_get_condition()
 void dap_link_manager_add_static_links_cluster(dap_cluster_member_t *a_member, void *a_arg)
 {
 // sanity check
-    dap_return_if_pass_err(!s_link_manager, s_init_error);
+    dap_return_if_pass_err(!s_link_manager, "%s", s_init_error);
     dap_return_if_pass(!a_member || !a_arg);
 // func work
     dap_stream_node_addr_t *l_node_addr = &a_member->addr;
@@ -1220,7 +1220,7 @@ void dap_link_manager_add_static_links_cluster(dap_cluster_member_t *a_member, v
 void dap_link_manager_remove_static_links_cluster(dap_cluster_member_t *a_member, void *a_arg)
 {
 // sanity check
-    dap_return_if_pass_err(!s_link_manager, s_init_error);
+    dap_return_if_pass_err(!s_link_manager, "%s", s_init_error);
     dap_return_if_pass(!a_member || !a_arg);
 // func work
     dap_stream_node_addr_t *l_node_addr = &a_member->addr;
diff --git a/net/server/json_rpc/src/dap_json_rpc.c b/net/server/json_rpc/src/dap_json_rpc.c
index 2a2e578a7..7f55fdf0e 100644
--- a/net/server/json_rpc/src/dap_json_rpc.c
+++ b/net/server/json_rpc/src/dap_json_rpc.c
@@ -139,7 +139,7 @@ void dap_json_rpc_http_proc(dap_http_simple_t *a_http_simple, void *a_arg)
                 return;
             }
         }
-        char * l_res_str = dap_json_rpc_request_handler(l_dg->request, l_dg->request_size);
+        char *l_res_str = dap_json_rpc_request_handler(l_dg->request, l_dg->request_size);
         if (l_res_str) {
             enc_http_reply(l_dg, l_res_str, strlen(l_res_str));
             DAP_DELETE(l_res_str);
@@ -153,6 +153,7 @@ void dap_json_rpc_http_proc(dap_http_simple_t *a_http_simple, void *a_arg)
             log_it(L_ERROR, "Wrong request");
             *return_code = Http_Status_BadRequest;
         }
+        *return_code = Http_Status_OK;
         enc_http_reply_encode(a_http_simple,l_dg);
         enc_http_delegate_delete(l_dg);
     } else {
diff --git a/net/stream/stream/dap_stream_cluster.c b/net/stream/stream/dap_stream_cluster.c
index 391ee5239..dabc883be 100644
--- a/net/stream/stream/dap_stream_cluster.c
+++ b/net/stream/stream/dap_stream_cluster.c
@@ -42,11 +42,7 @@ static void s_cluster_member_delete(dap_cluster_member_t *a_member);
  */
 dap_cluster_t *dap_cluster_new(const char *a_mnemonim, dap_guuid_t a_guuid, dap_cluster_type_t a_type)
 {
-    dap_cluster_t *ret = DAP_NEW_Z(dap_cluster_t);
-    if (!ret) {
-        log_it(L_CRITICAL, "Insufficient memory");
-        return NULL;
-    }
+    dap_cluster_t *ret = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_cluster_t, NULL);
     pthread_rwlock_init(&ret->members_lock, NULL);
     ret->type = a_type;
     ret->guuid = a_guuid;
-- 
GitLab