diff --git a/modules/modules_dynamic/cdb/dap_modules_dynamic_cdb.c b/modules/modules_dynamic/cdb/dap_modules_dynamic_cdb.c index 58b109c07afba78cee108de120f4e342b93a7e45..6abb617e6837a5c47157709a7035baa275bc2c25 100644 --- a/modules/modules_dynamic/cdb/dap_modules_dynamic_cdb.c +++ b/modules/modules_dynamic/cdb/dap_modules_dynamic_cdb.c @@ -77,13 +77,19 @@ void *dap_modules_dynamic_get_cdb_func(const char *a_func_name) int dap_modules_dynamic_load_cdb(dap_http_t * a_server) { + s_cdb_was_init = true; int (*dap_chain_net_srv_vpn_cdb_init)(dap_http_t *); dap_chain_net_srv_vpn_cdb_init = dap_modules_dynamic_get_cdb_func("dap_chain_net_srv_vpn_cdb_init"); + if (!dap_chain_net_srv_vpn_cdb_init) { + s_cdb_was_init = false; + log_it(L_ERROR, "dap_modules_dynamic: dap_chain_net_srv_vpn_cdb_init not found"); + return -2; + } int l_init_res = dap_chain_net_srv_vpn_cdb_init(a_server); if (l_init_res) { - log_it(L_ERROR,"dap_modules_dynamic: dap_chain_net_srv_vpn_cdb_init returns %d", l_init_res); + s_cdb_was_init = false; + log_it(L_ERROR, "dap_modules_dynamic: dap_chain_net_srv_vpn_cdb_init returns %d", l_init_res); return -3; } - s_cdb_was_init = true; return 0; } diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 964614e0c2f1d309396534aa390e5764d7588677..ba65a5fbd90e146c86b886a633a3c525b5fc9477 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -560,25 +560,21 @@ static void s_node_link_callback_disconnected(dap_chain_node_client_t * a_node_c dap_chain_net_t * l_net = (dap_chain_net_t *) a_arg; dap_chain_net_pvt_t * l_net_pvt = PVT(l_net); pthread_rwlock_wrlock(&l_net_pvt->rwlock); - if ( l_net_pvt->state_target ==NET_STATE_ONLINE ){ + if (l_net_pvt->state_target != NET_STATE_OFFLINE) { if(s_debug_more) log_it(L_NOTICE, "%s."NODE_ADDR_FP_STR" disconnected, reconnecting back...", - l_net->pub.name, - NODE_ADDR_FP_ARGS_S(a_node_client->remote_node_addr) ); + l_net->pub.name, + NODE_ADDR_FP_ARGS_S(a_node_client->remote_node_addr) ); a_node_client->is_reconnecting = true; + dap_chain_net_client_create_n_connect(l_net, a_node_client->info); - }else if (l_net_pvt->state_target == NET_STATE_OFFLINE){ + } else { if(l_net_pvt->links_connected_count) { s_node_link_callback_delete(a_node_client,a_arg); l_net_pvt->links_connected_count--; } else log_it(L_CRITICAL,"Links count is zero in disconnected callback, looks smbd decreased it twice or forget to increase on connect/reconnect"); log_it(L_INFO, "%s."NODE_ADDR_FP_STR" disconnected",l_net->pub.name,NODE_ADDR_FP_ARGS_S(a_node_client->info->hdr.address)); - - }else{ - log_it(L_CRITICAL,"Link "NODE_ADDR_FP_STR" disconnected, but wrong target state %s: could be only NET_STATE_ONLINE or NET_STATE_OFFLINE " - ,NODE_ADDR_FP_ARGS_S(a_node_client->remote_node_addr) - , c_net_states[l_net_pvt->state_target] ); } pthread_rwlock_unlock(&l_net_pvt->rwlock); } diff --git a/modules/net/dap_chain_node_client.c b/modules/net/dap_chain_node_client.c index 690f5b38cd0746b94dc5760655b2fd8160c3c1d5..d4934ddf60fae887f7ae94a9a5c1f4fdfbdf2830 100644 --- a/modules/net/dap_chain_node_client.c +++ b/modules/net/dap_chain_node_client.c @@ -170,13 +170,18 @@ static void s_stage_status_error_callback(dap_client_t *a_client, void *a_arg) } else if (l_node_client->keep_connection) { dap_events_socket_uuid_t *l_uuid = DAP_NEW(dap_events_socket_uuid_t); memcpy(l_uuid, &l_node_client->uuid, sizeof(dap_events_socket_uuid_t)); - dap_timerfd_start_on_worker(l_node_client->stream_worker? l_node_client->stream_worker->worker: dap_events_worker_get_auto(),s_timer_update_states*1000,s_timer_update_states_callback, l_uuid); + dap_timerfd_start_on_worker(l_node_client->stream_worker + ? l_node_client->stream_worker->worker + : dap_events_worker_get_auto(), + s_timer_update_states*1000, + s_timer_update_states_callback, + l_uuid); } return; } // TODO make different error codes if(l_node_client->callbacks.error) - l_node_client->callbacks.error(l_node_client, EINVAL,l_node_client->callbacks_arg ); + l_node_client->callbacks.error(l_node_client, EINVAL, l_node_client->callbacks_arg); } /**