docs(proxy): record teardown findings and refine counters
This commit is contained in:
1 parent
5e80a9cc6c
commit
ec1fc52da1
3 files changed
+13
-2
No files matched your search
@@ -4,6 +4,17 @@
|
||||
|
||||
## Текущие задачи
|
||||
|
||||
[ ] **Proxy: проверить ошибки teardown и убрать неверный ключ в тестовых конфигах** — обнаружено при аудите документации 24.10.2026.
|
||||
Девять профильных тестов PASS, но в test_socks_http_proxy после ответов встречаются EPIPE (32)
|
||||
в tcp_io error_cb и ENOTCONN (107) при shutdown write; причина и корректность cleanup отдельно не установлены.
|
||||
Побайтовая проверка всех 16 загрузок проходит. Начать с информативного лога FIN/close/socket events
|
||||
(proxy/socket), сопоставить обе половины и очереди; поведение по одному PASS не считать проверенным.
|
||||
test_udp_proxy, test_icmp_proxy и test_socks_http_proxy также используют [tcp_proxy_server] enabled=yes:
|
||||
парсер логирует Unknown option, но включает сервер при обработке любого параметра этой секции.
|
||||
В тестах использовать поддержанный параметр, например connect_timeout=2000, либо отдельно согласовать API конфига.
|
||||
ICMP здесь проверен через fallback без raw socket (нет прав); реальный raw ping не подтверждён.
|
||||
Логи: /tmp/proxy-doc-audit-network-logs/test_socks_http_proxy.log, test_udp_proxy.log и test_icmp_proxy.log в том же каталоге.
|
||||
|
||||
[ ] **ETCP: полезная утилизация нескольких каналов и доставка при зависании части линков** — общая задача открыта.
|
||||
24.10.2026: тесты отдельно проверяют обработку RTO (опоздание<=20мс), ожидание готового повтора (<=100мс)
|
||||
и доставку сверх заданной задержки канала (<=100мс). TX учитывается после принятия send.
|
||||
|
||||
@@ -53,7 +53,7 @@ struct tcp_proxy_client_conn {
|
||||
|
||||
struct ll_queue* tx_queue; // буфер lwIP→ETCP при backpressure (аналог server read_queue)
|
||||
struct queue_waiter_handle tx_waiter; // waiter на send_q (etcp_router_on_send_ready)
|
||||
void* tx_retry_timer; // retry safety-net (force=1), аналог server retry_timer
|
||||
void* tx_retry_timer; // safety-net 500 мс, повтор DATA с force=1 (окно proxy сохраняется)
|
||||
|
||||
uint32_t bytes_to_exit; // байт принято router для exit (из lwIP/TUN)
|
||||
uint32_t bytes_from_exit; // байт получено от exit (в lwIP/TUN)
|
||||
|
||||
@@ -45,7 +45,7 @@ struct tcp_proxy_server_conn {
|
||||
void* retry_timer; // fallback 500 мс: возобновить read_queue, DATA отправляется с force=0
|
||||
uint32_t bytes_sent; // сумма входящих DATA, учитывается до проверки/записи в TCP
|
||||
uint32_t bytes_relayed; // байт принято router для клиента
|
||||
uint32_t drain_count; // счётчик вызовов read_queue_drain_cb
|
||||
uint32_t drain_count; // число успешно отправленных DATA из read_queue
|
||||
uint32_t data_count; // счётчик входящих DATA от клиента
|
||||
struct UASYNC* ua; // заимствованный loop для таймеров и отложенного free
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user