- Get wintun interface index directly after adapter creation
- Use netsh instead of CreateIpForwardEntry (doesn't work with wintun)
- Fallback to CreateIpForwardEntry if netsh fails
- build.sh: added --full flag for full rebuild (autoreconf + configure + make)
- build_direct.sh: incremental compilation (skips unchanged files)
- build_full.bat: new Windows batch for full rebuild
- configure.ac: fixed Windows detection using AC_COMPILE_IFELSE
- lib/u_async.c/h: Windows wakeup socket support, uasync_post for thread-safe callbacks
- src/tun_if.c/h: cross-platform TUN refactoring, Windows read thread support
- src/tun_windows.c: Windows TUN implementation improvements
- src/control_server.c: removed premature return statement
- src/routing.c: include ordering fix
- src/utun.c: windows compat includes
- Deleted obsolete net_emulator/Makefile and tinycrypt/Makefile
- Добавлена опция tun_test_mode в конфиг для работы без реального TUN устройства
- Добавлены функции для работы с очередями TUN в тестовом режиме
- Добавлен API для программного создания instance из структуры конфига
- Создан тест test_routing_mesh.c с 3-instance mesh топологией
- Ключи генерируются автоматически и распределяются между instance
- Split TUN implementation into platform-specific files:
- tun_if.c: Common code (queues, callbacks, statistics)
- tun_linux.c: Linux TUN/TAP implementation (/dev/net/tun + ioctl)
- tun_windows.c: Windows Wintun implementation (wintun.dll + IP Helper)
- Update tun_if.h with platform abstraction layer:
- tun_platform_init/cleanup/read/write/get_poll_fd
- Platform handles: fd (Linux), WINTUN handles (Windows)
- Windows implementation features:
- Dynamic loading of wintun.dll with graceful error handling
- IP Helper API for IP address and MTU configuration
- HANDLE-based uasync integration
- Clear error message if wintun.dll is not found
- Update build system:
- configure.ac: Detect Windows (mingw/msys/cygwin)
- src/Makefile.am: Conditional compilation of tun_linux/tun_windows
- tests/Makefile.am: Link platform-specific TUN objects
- Add wintun.dll and wintun.h to lib/ directory
- All 22 tests pass on Linux
- Ready for MSYS2 UCRT64 Windows build
- Fixed race condition: routing_add_conn called before etcp->normalizer was assigned
- Moved routing_add_conn from pn_init to etcp_connection_create after normalizer init
- Added routing.h include to etcp.c
- Fixed tests: disable routing callback on output_queue to keep packets for test verification
All 19 tests now pass.
- New struct tun_if with internal queue for incoming packets
- Single tun_init() does everything: create TUN, set MTU=1500, up, register in uasync
- tun_write() for outgoing packets
- tun_close() cleans up everything including queue
- Removed: tun_create, tun_set_ip, tun_set_up, tun_set_mtu, tun_read, tun_get_config
- Removed: utun_instance_register/unregister_sockets (now internal)
- Updated utun_instance to use new tun_if* pointer
- Updated test_etcp_two_instances for new API
- Added missing structure members to ETCP_CONN (ack_packets_count, last_rx_ack_id, rtt_history, rtt_history_idx, total_packets_sent)
- Added missing bandwidth member to ETCP_LINK structure
- Fixed include path for ll_queue.h header
- Added math library linking (-lm) to build system
- Added etcp_loadbalancer.c to build sources
- Fixed forward declarations and function calls in ETCP modules
- Updated test dependencies to include loadbalancer object files
All simple compilation errors resolved, project builds successfully and tests pass (except TUN permission test which is expected in container).
- Добавлен AGENTS.md - руководство для AI агентов разработки
- Рефакторинг etcp: упрощен etcp_connection_create через etcp_conn_reset
- Обновлены etcp_connections: улучшена работа с каналами
- Обновлен routing: оптимизация таблиц маршрутизации
- Обновлен tun_if: улучшена работа с TUN/TAP интерфейсом
- Обновлен utun_instance: улучшено управление экземплярами
- Обновлен test_routing_full: расширено тестирование
- Добавлено больше документации и комментариев
- Добавлен шаблон конфигурации src/utun.conf
- Add utun VPN daemon with config parsing, control socket, routing, and TUN interface
- Refactor net_emulator/u_async to support multiple independent instances
- Replace linked-list timeout management with heap-based implementation
- Fix timeout processing bug (process timeouts after select)
- Add comprehensive random timeout and instance isolation tests
- Update Makefile to build utun and new test targets