You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
9.3 KiB
97 lines
9.3 KiB
Thu Jan 15 2026 05:13: Обновление uasync для поддержки инстансов |
|
|
|
- Обновлен модуль u_async для поддержки инстансов (структура uasync_s, функции с суффиксом _instance) |
|
- Сохранена обратная совместимость: глобальные функции используют глобальный инстанс |
|
- Добавлены поля uasync_t* ua в структуры conn_handle, epkt, ll_queue |
|
- Обновлены вызовы uasync_set_timeout и uasync_cancel_timeout на инстансные версии в connection.c, etcp.c, ll_queue.c |
|
- Обновлен mock simple_uasync.c для поддержки нового API |
|
- Исправлена ошибка отсутствия поля stats в conn_handle (добавлено поле stats) |
|
|
|
Thu Jan 15 2026 12:24: Настройка NTP и таймзоны GMT+3 |
|
|
|
- Установлена таймзона Etc/GMT-3 |
|
- Включена синхронизация NTP через systemd-timesyncd |
|
- Проверена работа автозапуска NTP сервиса |
|
Thu Jan 15 2026 14:30: Удаление глобального инстанса uasync |
|
- Убраны глобальные функции uasync_init, uasync_get_global_instance |
|
- Переименованы инстансные функции (убраны суффиксы _instance) |
|
- Обновлены ll_queue, connection, etcp, pkt_normalizer для передачи uasync_t* |
|
- Основной код компилируется, тесты требуют доработки |
|
|
|
Thu Jan 15 2026 18:45: Завершение рефакторинга uasync на инстансную архитектуру |
|
- Исправлены оставшиеся вызовы uasync_poll в test_utun_integration.c |
|
- Обновлен основной приложение utun.c для использования instance-based API: |
|
* Добавлено поле uasync_t* ua в utun_state_t |
|
* Создание и уничтожение uasync инстанса в main и cleanup |
|
* Передача инстанса в conn_create |
|
* Добавлен вызов uasync_poll в event_loop |
|
- Все тесты компилируются и проходят (кроме интеграционного, требующего root) |
|
- Архитектура глобального инстанса полностью устранена |
|
|
|
Thu Jan 15 2026 19:30: Исправление double-free в uasync_destroy |
|
- Добавлена отладочная печать в u_async.c и etcp.c для отслеживания таймеров |
|
- Обнаружена проблема с ленивым удалением таймеров в timeout_heap |
|
- Внесены изменения в uasync_cancel_timeout и uasync_destroy для избежания double-free |
|
- Тест test_new_features все еще падает из-за double-free, требуется дальнейшее исследование |
|
|
|
Thu Jan 15 2026 19:45: Полное исправление double-free в uasync |
|
- Изменена логика uasync_cancel_timeout: не освобождает память, только помечает callback как NULL |
|
- Обновлены process_timeouts и uasync_destroy для корректного освобождения памяти |
|
- Убраны отладочные печати из рабочего кода |
|
- Все тесты проходят успешно, включая test_new_features |
|
|
|
Thu Jan 15 2026 21:30: Добавление детектора утечек памяти и исправление подсчета освобождений |
|
- Добавлены счетчики аллокаций и освобождений таймеров и сокетов в uasync_t |
|
- Добавлен callback в timeout_heap для обновления счетчиков при освобождении отмененных таймеров |
|
- Добавлена проверка утечек в uasync_destroy с аварийным завершением при обнаружении неосвобожденных ресурсов после очистки |
|
- Исправлен подсчет освобождений: теперь все таймеры учитываются правильно |
|
- Все тесты проходят, утечки не обнаруживаются после очистки |
|
|
|
Thu Jan 15 2026 17:09: Реорганизация структуры проекта и обновление Makefile |
|
- Исходные файлы перемещены в каталог src/ |
|
- Обновлен Makefile для сборки объектных файлов в obj/src и obj/tests |
|
- Добавлены символические ссылки на заголовочные файлы в корне для совместимости с тестами |
|
- Обновлены пути включения заголовков (-Isrc) |
|
- Все цели сборки работают корректно |
|
|
|
Thu Jan 15 2026 17:23: Завершение реорганизации проекта - удаление симлинков и исправление includes |
|
- Удалены все символические ссылки на заголовочные файлы из корневой директории |
|
- Обновлены include директивы в тестовых файлах: заменены #include "../header.h" на #include "header.h" |
|
- Исправлен файл tests/simple_uasync.c |
|
- Все тесты и основное приложение успешно компилируются без симлинков |
|
- Структура проекта: src/ для исходников, tests/ для тестов, obj/ для объектных файлов |
|
|
|
Thu Jan 15 2026 17:49: Унификация модуля u_async для основного проекта и net_emulator |
|
- Модуль u_async выделен в отдельный каталог u_async/ (исходники: u_async.c, timeout_heap.c) |
|
- Обновлен основной Makefile: добавлен -Iu_async, правила компиляции для файлов из u_async/ |
|
- Обновлен net_emulator: удалены локальные копии u_async.c, u_async.h, timeout_heap.c, timeout_heap.h |
|
- Обновлен Makefile net_emulator: использует общие объектные файлы из ../obj/src/, добавлен -I../u_async |
|
- Удалены тестовые файлы net_emulator (test_timeout_heap.c, test_uasync_random.c) как несовместимые с общей реализацией |
|
- Все цели сборки (основной проект и net_emulator) компилируются успешно |
|
Thu Jan 15 2026 19:14: Проверка test_utun_fork и улучшения |
|
|
|
- Исправлен путь к бинарнику utun в тесте (заменен ../utun на ./utun) |
|
- Добавлены замеры времени выполнения каждого этапа теста |
|
- Добавлена проверка логов на наличие ошибок (error/fatal/fail) |
|
- Тест успешно проходит, утечки памяти не обнаружены в логах |
|
- Добавлен вывод общего времени выполнения теста |
|
|
|
Thu Jan 15 2026 20:31: Внедрение ETCP reset механизма с интеграцией в connection.c |
|
|
|
- Добавлен reset callback в connection.c: функция conn_etcp_reset_callback для сброса состояния pkt_normalizer |
|
- Установка callback через etcp_set_reset_callback в conn_connect |
|
- Добавлена блокировка tx_process для data packets во время reset_pending && !reset_ack_received (служебные пакеты разрешены) |
|
- Добавлена блокировка retransmit_check во время reset handshake |
|
- Все изменения совместимы с существующими тестами, тесты проходят успешно |
|
- Устранен warning о неиспользуемом параметре epkt в callback |
|
|
|
Чт янв 15 2026 22:54: Обновление API библиотеки защищённого канала с добавлением CRC32 |
|
|
|
- Добавлена поддержка CRC32 для проверки целостности данных (полином IEEE 802.3) |
|
- Обновлен API sc_encrypt/sc_decrypt: объединены tag и CRC32 в один выходной буфер, удалены отдельные параметры tag |
|
- Добавлены константы SC_CRC32_SIZE, SC_MAX_OVERHEAD и код ошибки SC_ERR_CRC_FAILED |
|
- Реализовано вычисление CRC32 перед шифрованием и проверка после дешифрования |
|
- Обновлены функции packer_output_bridge и etcp_output_bridge в connection.c для использования нового API |
|
- Добавлена статистика ошибок (encryption_errors, decryption_errors, crc_errors) в структуру conn_stats_t |
|
- Обновлены тесты test_sc_lib.c и test_udp_secure.c для совместимости с новым API |
|
- Все тесты компилируются и проходят успешно
|
|
|