From 0606fc6647bbd605d909cc2794eea956fa73e94d Mon Sep 17 00:00:00 2001 From: "roman.khlopkov" <roman.khlopkov@demlabs.net> Date: Mon, 3 Jun 2024 18:53:05 +0300 Subject: [PATCH] [*] Segfault with net announce fix --- dap-sdk | 2 +- modules/net/dap_chain_ledger.c | 8 +++----- modules/net/dap_chain_net.c | 4 ++-- modules/net/dap_chain_net_anchor.c | 1 + modules/net/dap_chain_node_cli.c | 7 ++----- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/dap-sdk b/dap-sdk index 41abc05d56..063776950c 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit 41abc05d56f0a54a3d1158726aa6f70c030effa2 +Subproject commit 063776950c5bce0a5179eee970a5def10edffa41 diff --git a/modules/net/dap_chain_ledger.c b/modules/net/dap_chain_ledger.c index fb6fc36b8e..af4225190a 100644 --- a/modules/net/dap_chain_ledger.c +++ b/modules/net/dap_chain_ledger.c @@ -5279,7 +5279,7 @@ int dap_ledger_tx_remove(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, dap case TX_ITEM_TYPE_IN: { dap_ledger_wallet_balance_t *wallet_balance = NULL; l_cur_token_ticker = l_bound_item->in.token_ticker; - char *l_addr_str = dap_chain_addr_to_str(&l_bound_item->in.addr_from); + const char *l_addr_str = dap_chain_addr_to_str(&l_bound_item->in.addr_from); char *l_wallet_balance_key = dap_strjoin(" ", l_addr_str, l_cur_token_ticker, (char*)NULL); pthread_rwlock_rdlock(&PVT(a_ledger)->balance_accounts_rwlock); HASH_FIND_STR(PVT(a_ledger)->balance_accounts, l_wallet_balance_key, wallet_balance); @@ -5346,7 +5346,6 @@ int dap_ledger_tx_remove(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, dap } // Update balance: deducts all outs from balances - bool l_multichannel = false; bool l_cross_network = false; for (dap_list_t *l_tx_out = l_list_tx_out; l_tx_out; l_tx_out = dap_list_next(l_tx_out)) { if (!l_tx_out->data) { @@ -5387,7 +5386,6 @@ int dap_ledger_tx_remove(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, dap l_addr = &l_out_item_ext_256->addr; l_value = l_out_item_ext_256->header.value; l_cur_token_ticker = l_out_item_ext_256->token; - l_multichannel = true; } break; default: log_it(L_DEBUG, "Unknown item type %d", l_type); @@ -5398,7 +5396,7 @@ int dap_ledger_tx_remove(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, dap else if (l_addr->net_id.uint64 != a_ledger->net->pub.id.uint64 && !dap_chain_addr_is_blank(l_addr)) l_cross_network = true; - char *l_addr_str = dap_chain_addr_to_str(l_addr); + const char *l_addr_str = dap_chain_addr_to_str(l_addr); dap_ledger_wallet_balance_t *wallet_balance = NULL; char *l_wallet_balance_key = dap_strjoin(" ", l_addr_str, l_cur_token_ticker, (char*)NULL); if(s_debug_more) { @@ -6605,4 +6603,4 @@ const char *dap_ledger_tx_calculate_main_ticker(dap_ledger_t *a_ledger, dap_chai *a_ledger_rc = l_rc; return l_main_ticker; -} \ No newline at end of file +} diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 104b3a7a86..addabe4fa0 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -476,8 +476,8 @@ static void s_link_manager_callback_connected(dap_link_t *a_link, uint64_t a_net } dap_stream_ch_chain_net_pkt_hdr_t l_announce = { .version = DAP_STREAM_CH_CHAIN_NET_PKT_VERSION, .net_id = l_net->pub.id }; - dap_client_write_unsafe(a_link->uplink.client, 'N', DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_ANNOUNCE, - &l_announce, sizeof(l_announce)); + dap_stream_ch_pkt_send_by_addr(&a_link->addr, DAP_STREAM_CH_CHAIN_NET_ID, DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_ANNOUNCE, + &l_announce, sizeof(l_announce)); } static bool s_net_check_link_is_premanent(dap_chain_net_t *a_net, dap_stream_node_addr_t a_addr) diff --git a/modules/net/dap_chain_net_anchor.c b/modules/net/dap_chain_net_anchor.c index e51977539f..e5825d6537 100644 --- a/modules/net/dap_chain_net_anchor.c +++ b/modules/net/dap_chain_net_anchor.c @@ -36,6 +36,7 @@ #include "dap_chain_net_tx.h" #include "dap_chain_net_decree.h" #include "dap_chain_datum_anchor.h" +#include "dap_chain_cs_esbocs.h" #define LOG_TAG "chain_net_anchor" diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c index 303093ff69..6f7fc4e777 100644 --- a/modules/net/dap_chain_node_cli.c +++ b/modules/net/dap_chain_node_cli.c @@ -29,11 +29,9 @@ #include <assert.h> //#include <glib.h> #include <unistd.h> - - #include <pthread.h> - #include "iputils/iputils.h" + #include "dap_common.h" #include "dap_config.h" #include "dap_strfuncs.h" @@ -44,8 +42,7 @@ #include "dap_chain_node_cli_cmd_tx.h" #include "dap_cli_server.h" #include "dap_chain_node_cli.h" - -//#include "dap_chain_node_cli.h" +#include "dap_notify_srv.h" #define LOG_TAG "chain_node_cli" static bool s_debug_cli = false; -- GitLab