From 4cfd0ec89f9aeca2de55365ffb5bcd6d1614bee3 Mon Sep 17 00:00:00 2001 From: evgeny Date: Fri, 23 Oct 2026 00:03:29 +0200 Subject: [PATCH] Identify DATA in local datagram metadata without changing the wire header --- src/transport_layer/etcp.c | 1 + src/transport_layer/etcp_connections.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/transport_layer/etcp.c b/src/transport_layer/etcp.c index 6ce4e7d2..e6379827 100644 --- a/src/transport_layer/etcp.c +++ b/src/transport_layer/etcp.c @@ -1328,6 +1328,7 @@ struct ETCP_DGRAM* etcp_request_pkt(struct ETCP_CONN* etcp) { dgram->link = link; dgram->noencrypt_len=0; + dgram->payload_len = inf_pkt ? inf_pkt->ll.len : 0; dgram->timestamp = get_current_timestamp(); // формат ack: [01] [elements count] [4 байта last_delivered_id] [2 байта rx_dup_count] и <[4 байта seq][2 байта recv_ts][2 байта txrx delay ts]> x count diff --git a/src/transport_layer/etcp_connections.h b/src/transport_layer/etcp_connections.h index 310776f2..9ee4a560 100644 --- a/src/transport_layer/etcp_connections.h +++ b/src/transport_layer/etcp_connections.h @@ -67,6 +67,7 @@ struct ETCP_DGRAM {// пакет (незашифрованный) struct ETCP_LINK* link;// откуда получена или куда отправялем uint16_t data_len;// общий размер пакета не включая timestamp uint16_t noencrypt_len;// число байт (с конца) которые не надо шифровать. для передачи pubkey + uint16_t payload_len; // локальные метаданные request_pkt: DATA-байты; 0 — только ACK/control/FILLER, вне DATA-pacing uint16_t timestamp;// timestamp отправляющего узла при отправке пакета uint8_t flag_up:1;// bit0 = up/down (recv_keepalive) uint8_t data[];// данные пакета (без timestamp)