From 55da8fd146b324176bf46306e4ff0d356c076820 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 3 Sep 2026 21:59:57 +0300 Subject: [PATCH] =?UTF-8?q?media=5Fdelivery:=20=D0=BB=D0=BE=D0=B3=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20QUERY=5FRESP=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=D0=BE=D0=B2=20md=5Fsend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/media_delivery/media_delivery.c | 14 ++++++++++---- src/media_delivery/media_download.c | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/media_delivery/media_delivery.c b/src/media_delivery/media_delivery.c index 2199c30a..f1047f33 100644 --- a/src/media_delivery/media_delivery.c +++ b/src/media_delivery/media_delivery.c @@ -412,7 +412,12 @@ static int md_send(struct UTUN_INSTANCE* inst, uint64_t group_id, uint64_t dst_n e->dgram[0] = ETCP_RT_ID_MEDIA_DELIVERY; memcpy(e->dgram + 1, data, len); e->len = (uint16_t)(len + 1); int rc = etcp_route_send(inst, group_id, dst_node_id, e, 1); - if (rc != 0) { u_free(e->dgram); queue_entry_free(e); } + if (rc != 0) { + struct ETCP_CONN* c = topo_group_find_conn_for_node(topo_groups_find(inst->topo_groups, group_id), dst_node_id); + DEBUG_ERROR(DEBUG_CATEGORY_MEDIA, "%s: md_send FAIL rc=%d dst=0x%016llx group=0x%016llx route_conn=%p", + MD_ID, rc, (unsigned long long)dst_node_id, (unsigned long long)group_id, (void*)c); + u_free(e->dgram); queue_entry_free(e); + } return rc; } @@ -492,9 +497,10 @@ static void md_handle_query(struct media_delivery_ctx* md, uint64_t from_node, uint16_t nc = (uint16_t)count; memcpy(resp + num_pos, &nc, 2); - DEBUG_INFO(DEBUG_CATEGORY_MEDIA, "%s: QUERY from 0x%016llx → %d entries (super=%d)", - MD_ID, (unsigned long long)from_node, count, md->is_supernode); - md_send(md->inst, TOPO_GROUP_UTUN, from_node, resp, (size_t)off); + struct ETCP_CONN* qconn = topo_group_find_conn_for_node(topo_groups_find(md->inst->topo_groups, TOPO_GROUP_UTUN), from_node); + int snd_rc = md_send(md->inst, TOPO_GROUP_UTUN, from_node, resp, (size_t)off); + DEBUG_INFO(DEBUG_CATEGORY_MEDIA, "%s: QUERY from 0x%016llx → %d entries (super=%d) resp_len=%zu send_rc=%d route_conn=%p", + MD_ID, (unsigned long long)from_node, count, md->is_supernode, (size_t)off, snd_rc, (void*)qconn); } static void md_handle_have_block(struct media_delivery_ctx* md, uint64_t from_node, diff --git a/src/media_delivery/media_download.c b/src/media_delivery/media_download.c index 8c193be7..fd46687e 100644 --- a/src/media_delivery/media_download.c +++ b/src/media_delivery/media_download.c @@ -274,6 +274,7 @@ static void md_dl_send_query(struct UTUN_INSTANCE* inst, struct media_download* void media_download_handle_query_resp(struct UTUN_INSTANCE* inst, const uint8_t* data, size_t len) { + DEBUG_INFO(DEBUG_CATEGORY_MEDIA, "%s: QUERY_RESP received len=%zu data=%p", MDL_ID, len, (void*)data); if (!data || len < MEDIA_QUERY_RESP_HDR_SIZE) return; struct media_pkt_query_resp* r = (struct media_pkt_query_resp*)data; struct media_pkt_query_resp_entry* entries = (struct media_pkt_query_resp_entry*)(data + MEDIA_QUERY_RESP_HDR_SIZE);