From e9acb6a26e173654a7ee048a3e5dc52f468855c1 Mon Sep 17 00:00:00 2001 From: "daniil.frolov" <daniil.frolov@demlabs.net> Date: Thu, 7 Sep 2023 15:00:56 +0700 Subject: [PATCH] add srv_uid_checking in orders parsing --- modules/net/srv/dap_chain_net_srv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/net/srv/dap_chain_net_srv.c b/modules/net/srv/dap_chain_net_srv.c index a5332bc777..109a91a54f 100644 --- a/modules/net/srv/dap_chain_net_srv.c +++ b/modules/net/srv/dap_chain_net_srv.c @@ -850,7 +850,8 @@ int dap_chain_net_srv_price_apply_from_my_order(dap_chain_net_srv_t *a_srv, cons for (size_t i=0; i < l_orders_count; i++){ l_err_code = -4; dap_chain_net_srv_order_t *l_order = dap_chain_net_srv_order_read(l_orders[i].value, l_orders[i].value_len); - if (l_order->node_addr.uint64 == l_node_addr->uint64) { + if (l_order->node_addr.uint64 == l_node_addr->uint64 && + l_order->srv_uid.uint64 == a_srv->uid.uint64) { l_err_code = 0; dap_chain_net_srv_price_t *l_price = DAP_NEW_Z(dap_chain_net_srv_price_t); if (!l_price) { @@ -862,7 +863,7 @@ int dap_chain_net_srv_price_apply_from_my_order(dap_chain_net_srv_t *a_srv, cons l_price->net = l_net; l_price->net_name = dap_strdup(l_net->pub.name); uint256_t l_max_price = GET_256_FROM_64(l_max_price_cfg); // Change this value when max price wil be calculated - if (!compare256(l_order->price, uint256_0) || l_order->units == 0 ){ + if (IS_ZERO_256(l_order->price) || l_order->units == 0 ){ log_it(L_ERROR, "Invalid order: units count or price unspecified"); DAP_DELETE(l_price); continue; @@ -884,6 +885,7 @@ int dap_chain_net_srv_price_apply_from_my_order(dap_chain_net_srv_t *a_srv, cons } } l_price->wallet = l_wallet; + // TODO: find most advantageous for us order DL_APPEND(a_srv->pricelist, l_price); break; } -- GitLab