Skip to content
Snippets Groups Projects
Commit 01195f1b authored by Roman Khlopkov's avatar Roman Khlopkov 🔜
Browse files

[*] DNS resolver kelvin-testnet unhardcoded

parent 526f4347
No related branches found
No related tags found
2 merge requests!148Master,!147dns-resolver-fix
Pipeline #4298 passed with stage
in 11 seconds
...@@ -84,20 +84,29 @@ void dap_dns_buf_put_uint32(dap_dns_buf_t *buf, uint32_t val) { ...@@ -84,20 +84,29 @@ void dap_dns_buf_put_uint32(dap_dns_buf_t *buf, uint32_t val) {
uint32_t dap_dns_resolve_hostname(char *str) { uint32_t dap_dns_resolve_hostname(char *str) {
log_it(L_DEBUG, "DNS parser retrieve hostname %s", str); log_it(L_DEBUG, "DNS parser retrieve hostname %s", str);
dap_chain_net_t *l_net = dap_chain_net_by_name("kelvin-testnet"); dap_chain_net_t *l_net = dap_chain_net_by_name(str);
if (l_net == NULL) {
uint16_t l_nets_count;
dap_chain_net_t **l_nets = dap_chain_net_list(&l_nets_count);
if (!l_nets_count) {
log_it(L_WARNING, "No chain network present");
return 0;
}
l_net = l_nets[rand() % l_nets_count];
}
// get nodes list from global_db // get nodes list from global_db
dap_global_db_obj_t *l_objs = NULL; dap_global_db_obj_t *l_objs = NULL;
size_t l_nodes_count = 0; size_t l_nodes_count = 0;
// read all node // read all node
l_objs = dap_chain_global_db_gr_load(l_net->pub.gdb_nodes, &l_nodes_count); l_objs = dap_chain_global_db_gr_load(l_net->pub.gdb_nodes, &l_nodes_count);
if(!l_nodes_count || !l_objs) if (!l_nodes_count || !l_objs)
return 0; return 0;
size_t l_node_num = rand() % l_nodes_count; size_t l_node_num = rand() % l_nodes_count;
dap_chain_node_info_t *l_node_info = (dap_chain_node_info_t *) l_objs[l_node_num].value; dap_chain_node_info_t *l_node_info = (dap_chain_node_info_t *)l_objs[l_node_num].value;
uint32_t addr = l_node_info->hdr.ext_addr_v4.s_addr; struct in_addr addr = l_node_info->hdr.ext_addr_v4;
dap_chain_global_db_objs_delete(l_objs, l_nodes_count); dap_chain_global_db_objs_delete(l_objs, l_nodes_count);
log_it(L_DEBUG, "DNS resolver find ip %d.%d.%d.%d", addr & 0xFF, (addr >> 8) & 0xFF, (addr >> 16) & 0xFF, (addr >> 24) & 0xFF); log_it(L_DEBUG, "DNS resolver find ip %s", inet_ntoa(addr));
return addr; return addr.s_addr;
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment