diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c index 8c9556c8bdd0fa6d82c8ace288a6e86ccff9ae19..850c989d79458b2a0192f91695ee044b2190d4db 100644 --- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c +++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c @@ -1264,6 +1264,13 @@ static bool s_stream_ch_packet_in(dap_stream_ch_t *a_ch, void *a_arg) return false; } pkt_test_t *l_request = (pkt_test_t*)l_ch_pkt->data; + if (dap_chain_net_srv_get(l_request->srv_uid) == NULL){ + log_it(L_WARNING, "Can't find service with id %"DAP_UINT64_FORMAT_U, l_request->srv_uid); + l_err.code = DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_SERVICE_NOT_FOUND; + dap_stream_ch_pkt_write_unsafe(a_ch, DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_SERVICE_NOT_FOUND, &l_err, sizeof(l_err)); + return false; + } + if (l_request->data_size_recv > DAP_CHAIN_NET_SRV_CH_REQUEST_SIZE_MAX || l_request->data_size > DAP_CHAIN_NET_SRV_CH_REQUEST_SIZE_MAX) { log_it(L_WARNING, "Too large payload %zu [pkt seq %"DAP_UINT64_FORMAT_U"]", l_request->data_size_recv, l_ch_pkt->hdr.seq_id); l_err.code = DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_BIG_SIZE; diff --git a/modules/net/dap_chain_node_client.c b/modules/net/dap_chain_node_client.c index dff62ed158ba3fb0ad335cf81ab103f4a39d6650..2d7b64b87010f281e1ff7b778b74cf5df00cef24 100644 --- a/modules/net/dap_chain_node_client.c +++ b/modules/net/dap_chain_node_client.c @@ -331,7 +331,7 @@ void dap_chain_node_client_close_unsafe(dap_chain_node_client_t *a_node_client) if (a_node_client->reconnect_timer) dap_timerfd_delete_mt(a_node_client->reconnect_timer->worker, a_node_client->reconnect_timer->esocket_uuid); if (a_node_client->callbacks.delete) - a_node_client->callbacks.delete(a_node_client, a_node_client->net); + a_node_client->callbacks.delete(a_node_client, a_node_client->callbacks_arg); if (a_node_client->stream_worker) { dap_stream_ch_t *l_ch = dap_stream_ch_find_by_uuid_unsafe(a_node_client->stream_worker, a_node_client->ch_chain_net_uuid);