Рефакторинг: упрощен etcp_connection_create через вызов etcp_conn_reset

- Удалено ~50 строк дублирующего кода инициализации
- Все поля теперь сбрасываются через etcp_conn_reset
- Сохранена специфичная инициализация: mtu, crypto, очереди, callback
This commit is contained in:
Evgeny committed 2026-01-20 16:48:55 +03:00
1 parent b737b718cf
commit aab0e445f7
2 files changed
+93 -142

No files matched your search

+4 -5
View File
@@ -1,4 +1,5 @@
// etcp.h - Расширенный протокол управления передачей (ETCP Protocol)
// etcp.c/h - стек ретрансмиссий для ETCP Protocol
// каждое подключение имеет несколько дублирующих каналов. они реализованы в etcp_connections.c/h
#ifndef ETCP_H
#define ETCP_H
@@ -45,8 +46,6 @@ struct ETCP_CONN {
// Каналы (соединения) - linked list
struct ETCP_LINK* links;
uint8_t state; // 0 - just created, 1 - initialized, 2 - connection established
// Криптография и состояние
struct secure_channel crypto_ctx;
@@ -79,7 +78,7 @@ struct ETCP_CONN {
uint32_t bytes_received_total;
// State
uint16_t next_tx_id;
uint16_t next_tx_id;// инкрементируется после отправки пакета
uint16_t last_sent_id;
uint16_t last_rx_id;
uint16_t last_delivered_id;
@@ -122,7 +121,7 @@ struct ETCP_CONN {
struct ETCP_CONN* etcp_connection_create(struct UTUN_INSTANCE* instance);
// Уничтожение ETCP instance
void etcp_destroy(struct ETCP_CONN* etcp);
void etcp_connection_close(struct ETCP_CONN* etcp);
// Обработать входящий пакет (вызывается из etcp_connections)
void etcp_conn_input(struct ETCP_CONN* etcp, struct ETCP_DGRAM* pkt);