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