From b0b3f91bee7b4ed807dadde28249fdbf9c42026c Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Wed, 6 Nov 2019 03:49:52 +0700 Subject: [PATCH] [*] Fixed --- dap_chain_net_srv_vpn_cdb_server_list.c | 61 ++++++++++++------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/dap_chain_net_srv_vpn_cdb_server_list.c b/dap_chain_net_srv_vpn_cdb_server_list.c index 5a1adb5..5637bf4 100644 --- a/dap_chain_net_srv_vpn_cdb_server_list.c +++ b/dap_chain_net_srv_vpn_cdb_server_list.c @@ -59,13 +59,14 @@ static void s_http_simple_proc(dap_http_simple_t *a_http_simple, void *a_arg); int dap_chain_net_srv_vpn_cdb_server_list_init() { char **l_cdb_networks; - size_t l_cdb_networks_size = 0; + size_t l_cdb_networks_count = 0; log_it(L_NOTICE,"Initialized Server List Module"); - l_cdb_networks = dap_config_get_array_str( g_config, "cdb", "networks", &l_cdb_networks_size ); + l_cdb_networks = dap_config_get_array_str( g_config, "cdb", "networks", &l_cdb_networks_count ); - if ( l_cdb_networks_size ){ - s_cdb_net = DAP_NEW_Z_SIZE(dap_chain_net_t*, sizeof (dap_chain_net_t*)* l_cdb_networks_size ); - for ( size_t i = 0; i < l_cdb_networks_size ; i++) { + if ( l_cdb_networks_count ){ + s_cdb_net = DAP_NEW_Z_SIZE(dap_chain_net_t*, sizeof (dap_chain_net_t*)* l_cdb_networks_count ); + s_cdb_net_count = l_cdb_networks_count; + for ( size_t i = 0; i < l_cdb_networks_count ; i++) { s_cdb_net[i] = dap_chain_net_by_name( l_cdb_networks[i] ); if ( s_cdb_net[i] ) log_it( L_INFO, "Added \"%s\" network for server list fetchs", l_cdb_networks[i]); @@ -97,41 +98,37 @@ static void s_http_simple_proc(dap_http_simple_t *a_http_simple, void *a_arg) size_t l_orders_count = 0; dap_chain_net_srv_price_unit_uid_t l_unit_uid = {{0}}; dap_chain_net_srv_uid_t l_srv_uid = { .uint64 =DAP_CHAIN_NET_SRV_VPN_ID }; - dap_chain_net_srv_order_find_all_by( l_net, SERV_DIR_SELL, l_srv_uid, SERV_CLASS_PERMANENT ,l_unit_uid ,NULL,0,0, &l_orders, &l_orders_count ); - log_it(L_DEBUG, "Found %sd orders in \"%s\" network", l_orders_count, l_net->pub.name ); + dap_chain_net_srv_order_find_all_by( l_net, SERV_DIR_SELL, l_srv_uid, SERV_CLASS_PERMANENT ,l_unit_uid , + NULL,0,0, &l_orders, &l_orders_count ); + log_it(L_DEBUG, "Found %zd orders in \"%s\" network", l_orders_count, l_net->pub.name ); for ( size_t j = 0; j < l_orders_count ; j++ ) { dap_chain_node_info_t * l_node_info = dap_chain_node_info_read( l_net, &l_orders[j].node_addr ); if ( l_node_info ){ char l_node_ext_ipv4_str[INET_ADDRSTRLEN]={0}; char l_node_ext_ipv6_str[INET6_ADDRSTRLEN]={0}; - inet_ntop(AF_INET,&l_node_info->hdr.ext_addr_v4,l_node_ext_ipv4_str,sizeof(l_node_ext_ipv4_str)); - inet_ntop(AF_INET6,&l_node_info->hdr.ext_addr_v6,l_node_ext_ipv6_str,sizeof(l_node_ext_ipv6_str)); - - dap_http_simple_reply_f( a_http_simple, - " {\n" - " \"Location\":\"NETHERLANDS\",\n" - " \"Name\":\"%s.Cell-%s.%sd\",\n" - " \"Address\":\"%s\",\n" - " \"Address6\":\"%s\",\n" - " \"Port\":%hu,\n" - " \"Description\":\"%s\",\n" - " \"Price\":%lu,\n" - " \"PriceUnits\":%u,\n" - " \"PriceToken\":\"%s\"\n" - " },\n", - l_net->pub.name, l_node_info->hdr.cell_id.uint64, j, - l_node_ext_ipv4_str, - l_node_ext_ipv6_str, - l_node_info->hdr.ext_port, - l_orders[j].ext, - l_orders[j].price, - l_orders[j].price_unit.uint32, - l_orders[j].price_ticker - ); + if (l_node_info->hdr.ext_addr_v4.s_addr) + inet_ntop(AF_INET,&l_node_info->hdr.ext_addr_v4,l_node_ext_ipv4_str,sizeof(l_node_ext_ipv4_str)); + if ( *((uint128_t *) l_node_info->hdr.ext_addr_v6.__in6_u.__u6_addr8 ) ) + inet_ntop(AF_INET6,&l_node_info->hdr.ext_addr_v6,l_node_ext_ipv6_str,sizeof(l_node_ext_ipv6_str)); + + dap_http_simple_reply_f( a_http_simple, " {\n"); + + dap_http_simple_reply_f( a_http_simple, " \"Location\":\"NETHERLANDS\",\n"); + dap_http_simple_reply_f( a_http_simple, " \"Name\":\"%s.Cell-%lu.%zd\",\n",l_net->pub.name, l_node_info->hdr.cell_id.uint64, j); + if ( l_node_ext_ipv4_str[0] ) + dap_http_simple_reply_f( a_http_simple, " \"Address\":\"%s\",\n",l_node_ext_ipv4_str); + if ( l_node_ext_ipv6_str[0] ) + dap_http_simple_reply_f( a_http_simple, " \"Address6\":\"%s\",\n",l_node_ext_ipv6_str); + dap_http_simple_reply_f( a_http_simple, " \"Port\":%hu,\n",l_node_info->hdr.ext_port); + dap_http_simple_reply_f( a_http_simple, " \"Ext\":\"%s\",\n",l_orders[j].ext); + dap_http_simple_reply_f( a_http_simple, " \"Price\":%lu,\n",l_orders[j].price); + dap_http_simple_reply_f( a_http_simple, " \"PriceUnits\":%u,\n",l_orders[j].price_unit.uint32); + dap_http_simple_reply_f( a_http_simple, " \"PriceToken\":\"%s\"\n",l_orders[j].price_ticker); + dap_http_simple_reply_f( a_http_simple, " },\n"); }else - log_it( L_WARNING, "Order %sd in \"%s\" network issued by node without ext_ipv4 field"); + log_it( L_WARNING, "Order %zd in \"%s\" network issued by node without ext_ipv4 field",j,l_net->pub.name); } } } -- GitLab