From 88f3a19f258a8531536d8b1408960139437e9c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Mon, 10 Jun 2019 23:27:00 +0500 Subject: [PATCH] fixed memory corruption --- dap_chain_net.c | 18 +++++++++--------- dap_chain_node_client.c | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dap_chain_net.c b/dap_chain_net.c index 32304a2eb8..af39eb127d 100644 --- a/dap_chain_net.c +++ b/dap_chain_net.c @@ -242,7 +242,7 @@ lb_proc_state: if ( l_net->pub.cell_id.uint64 == 0 ){ PVT(l_net)->links_addrs_count=1; PVT(l_net)->links_addrs = DAP_NEW_Z_SIZE(dap_chain_node_addr_t, - PVT(l_net)->links_addrs_count); + PVT(l_net)->links_addrs_count * sizeof(dap_chain_node_addr_t)); dap_chain_node_addr_t * l_node_addr = dap_chain_node_alias_find(l_net, PVT(l_net)->seed_aliases[0] ); PVT(l_net)->links_addrs[0].uint64 = l_node_addr? l_node_addr->uint64 : 0; }else { @@ -375,10 +375,10 @@ lb_proc_state: PVT(l_net)->addr_request_attempts++; int l_res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_NODE_ADDR_LEASED, timeout_ms); switch (l_res) { - case 0: + case -1: log_it(L_WARNING,"Timeout with addr leasing"); continue; // try with another link - case 1: + case 0: log_it(L_INFO, "Node address leased"); PVT(l_net)->state = NET_STATE_SYNC_GDB; pthread_mutex_unlock(&PVT(l_net)->state_mutex ); goto lb_proc_state; @@ -419,21 +419,21 @@ lb_proc_state: } // wait for finishing of request - int timeout_ms = 5000; // 2 min = 120 sec = 120 000 ms + int timeout_ms = 50000; // 2 min = 120 sec = 120 000 ms // TODO add progress info to console int res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_SYNCED, timeout_ms); switch (res) { - case 0: + case -1: log_it(L_WARNING,"Timeout with link sync"); break; - case 1: + case 0: log_it(L_INFO, "Node sync completed"); break; default: log_it(L_INFO, "Node sync error %d",res); } } - if ( PVT(l_net)->state_target == NET_STATE_ONLINE ){ + if ( PVT(l_net)->state_target >= NET_STATE_ONLINE ){ PVT(l_net)->state = NET_STATE_SYNC_CHAINS; }else { PVT(l_net)->state = NET_STATE_ONLINE; @@ -461,10 +461,10 @@ lb_proc_state: // TODO add progress info to console int l_res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_SYNCED, timeout_ms); switch (l_res) { - case 0: + case -1: log_it(L_WARNING,"Timeout with link sync"); break; - case 1: + case 0: log_it(L_INFO, "Node sync completed"); break; default: diff --git a/dap_chain_node_client.c b/dap_chain_node_client.c index b1ac1f26f8..6230ebdf91 100644 --- a/dap_chain_node_client.c +++ b/dap_chain_node_client.c @@ -355,7 +355,7 @@ int dap_chain_node_client_send_ch_pkt(dap_chain_node_client_t *a_client, uint8_t * * timeout_ms timeout in milliseconds * waited_state state which we will wait, sample NODE_CLIENT_STATE_CONNECT or NODE_CLIENT_STATE_SENDED - * return -1 false, 0 timeout, 1 end of connection or sending data + * return -2 false, -1 timeout, 0 end of connection or sending data */ int dap_chain_node_client_wait(dap_chain_node_client_t *a_client, int a_waited_state, int a_timeout_ms) { @@ -366,7 +366,7 @@ int dap_chain_node_client_wait(dap_chain_node_client_t *a_client, int a_waited_s // have waited if(a_client->state == a_waited_state) { pthread_mutex_unlock(&a_client->wait_mutex); - return 1; + return 0; } // prepare for signal waiting struct timespec to; -- GitLab