diff --git a/modules/net/dap_chain_node_client.c b/modules/net/dap_chain_node_client.c index fadccfe53697b5ff48d867299c1c51717c43c5b9..eac80ec86b27bd2f7ef3182264e0eaaf13ec123c 100644 --- a/modules/net/dap_chain_node_client.c +++ b/modules/net/dap_chain_node_client.c @@ -268,8 +268,17 @@ static void s_stage_connected_callback(dap_client_t *a_client, void *a_arg) l_node_client->callbacks.connected(l_node_client, l_node_client->callbacks_arg); dap_stream_ch_chain_net_pkt_hdr_t l_announce = { .version = DAP_STREAM_CH_CHAIN_NET_PKT_VERSION, .net_id = l_node_client->net->pub.id }; + // Announce net on downlink dap_client_write_unsafe(a_client, 'N', DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_ANNOUNCE, &l_announce, sizeof(l_announce)); + // Add uplink to clusters + dap_stream_node_addr_t *l_uplink_addr = &l_node_client->info->hdr.address; + dap_global_db_cluster_t *it; + DL_FOREACH(dap_global_db_instance_get_default()->clusters, it) + if (dap_cluster_member_find_unsafe(it->role_cluster, l_uplink_addr)) + dap_cluster_member_add(it->links_cluster, l_uplink_addr, 0, NULL); + dap_chain_net_add_cluster_link(l_node_client->net, l_uplink_addr); + pthread_mutex_lock(&l_node_client->wait_mutex); l_node_client->state = NODE_CLIENT_STATE_ESTABLISHED; if (s_stream_ch_chain_debug_more)