diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c index b51d0b7f7f1766ffd18d9b122ba7b1e31e196d1e..9eb36ca47a82e7b5773383557734036d0d83d3ca 100644 --- a/modules/channel/chain/dap_stream_ch_chain.c +++ b/modules/channel/chain/dap_stream_ch_chain.c @@ -828,12 +828,14 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg) uint32_t l_last_type = l_store_obj->type; bool l_group_changed = false; uint32_t l_time_store_lim_hours = dap_config_get_item_uint32_default(g_config, "global_db", "time_store_limit", 72); - dap_nanotime_t l_time_now = dap_nanotime_now() + dap_nanotime_from_sec(120); // time differnece consideration + dap_nanotime_t l_time_now = dap_nanotime_now() + dap_nanotime_from_sec(3600 *24); // time differnece consideration dap_nanotime_t l_limit_time = l_time_store_lim_hours ? l_time_now - dap_nanotime_from_sec(l_time_store_lim_hours * 3600) : 0; for (size_t i = 0; i < l_data_obj_count; i++) { // obj to add dap_store_obj_t *l_obj = l_store_obj + i; - if (l_obj->timestamp >> 32 == 0 || l_obj->timestamp > l_time_now || l_obj->group == NULL) + if (l_obj->timestamp >> 32 == 0 || + //l_obj->timestamp > l_time_now || + l_obj->group == NULL) continue; // the object is broken if (s_list_white_groups) { int l_ret = -1; diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 39ebba29c096f6abfe74b766cba294068946acec..843ab84cf2f9b1a56179f06b659dad298e5d6646 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -415,8 +415,8 @@ void dap_chain_net_sync_gdb_broadcast(dap_global_db_context_t *a_context, dap_st if (!a_arg || !a_obj || !a_obj->group || !a_obj->key) return; // Check object lifetime for broadcasting decision - dap_nanotime_t l_time_diff = a_obj->timestamp ? a_obj->timestamp - dap_nanotime_now() : (dap_nanotime_t)-1; - if (dap_nanotime_to_sec(l_time_diff) > DAP_BROADCAST_LIFETIME * 60) + dap_time_t l_time_diff = dap_nanotime_to_sec(dap_nanotime_now() - a_obj->timestamp); + if (l_time_diff > DAP_BROADCAST_LIFETIME * 60) return; dap_chain_net_t *l_net = (dap_chain_net_t *)a_arg; @@ -493,8 +493,7 @@ static void s_chain_callback_notify(void *a_arg, dap_chain_t *a_chain, dap_chain if (!HASH_COUNT(PVT(l_net)->downlinks)) return; // Check object lifetime for broadcasting decision - dap_time_t l_timestamp = a_chain->callback_atom_get_timestamp(a_atom); - dap_time_t l_time_diff = l_timestamp ? l_timestamp - dap_time_now() : (dap_time_t)-1; + dap_time_t l_time_diff = dap_time_now() - a_chain->callback_atom_get_timestamp(a_atom); if (l_time_diff > DAP_BROADCAST_LIFETIME * 60) return; @@ -799,7 +798,7 @@ static void s_node_link_callback_disconnected(dap_chain_node_client_t *a_node_cl dap_chain_node_info_t *l_link_node_info = s_get_balancer_link_from_cfg(l_net); if (l_link_node_info) { if (!s_new_balancer_link_request(l_net, 1)) - log_it(L_ERROR, "Can't process node info dns request"); + log_it(L_ERROR, "Can't process node info balancer request"); DAP_DELETE(l_link_node_info); } } @@ -1033,16 +1032,17 @@ static bool s_new_balancer_link_request(dap_chain_net_t *a_net, int a_link_repla return false; } pthread_rwlock_unlock(&l_net_pvt->states_lock); - dap_chain_node_info_t *l_link_node_info = s_get_balancer_link_from_cfg(a_net); - if (a_link_replace_tries >= 5) { + if (a_link_replace_tries >= 3) { // network problems, make static links s_fill_links_from_root_aliases(a_net); pthread_rwlock_wrlock(&l_net_pvt->uplinks_lock); struct net_link *l_free_link = s_get_free_link(a_net); - s_net_link_start(a_net, l_free_link, 0); + if (l_free_link) + s_net_link_start(a_net, l_free_link, l_net_pvt->reconnect_delay); pthread_rwlock_unlock(&l_net_pvt->uplinks_lock); return false; } + dap_chain_node_info_t *l_link_node_info = s_get_balancer_link_from_cfg(a_net); if (!l_link_node_info) return false; char l_node_addr_str[INET_ADDRSTRLEN] = {};