Commit Graph
11 Commits
Author SHA1 Message Date
Evgeny 1bafe6a681 Backup before fixing etcp_connections list addition 2026-01-26 17:40:51 +03:00
Evgeny 69ed944ce4 Fix uasync socket counting bug and add lookup function
Complete fix for use-after-free bug in uasync tests:

Library Changes:
- Added uasync_lookup_socket() function for safe socket lookup by FD
- Function returns current pointer even after memory reallocation
- Maintains full backward compatibility with existing API

Test Changes:
- Modified test to store file descriptors instead of raw pointers
- Uses lookup function to get current pointers during removal
- Eliminates stale pointer issues after socket array growth

Results:
- test_u_async_performance: 25/25 sockets successfully removed (was failing)
- test_u_async_comprehensive: PASS
- No memory leaks - clean 25/25 socket statistics
- All uasync tests now pass without corruption

Technical Details:
- Root cause: realloc() moved memory, making stored pointers invalid
- Solution: Store FDs, lookup current pointers when needed
- Minimal changes: only added necessary lookup function
- Backward compatible: existing code continues to work
2026-01-25 14:43:58 +03:00
Evgeny d74f76a5a0 Fix: Resolved double free in timeout_heap_pop() and test_etcp_simple_traffic bind conflict
- Fixed incorrect init_connections() call in test_etcp_simple_traffic.c (was calling server_instance instead of client_instance)
- Fixed double free in timeout_heap_pop() when handling deleted elements
- Enhanced NULL pointer safety in uasync_print_resources() by removing complex heap manipulation
- Added debug logging to timeout_heap_pop() for better error tracking

Test results: test_etcp_simple_traffic now passes without double free errors
2026-01-25 10:47:02 +03:00
Evgeny e048b10899 Fix: ETCP module compilation errors and build system issues
- 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).
2026-01-23 00:43:48 +03:00
Evgeny f1a76c9d30 Fix memory leaks and crashes in ETCP tests
✅ Fixed critical segmentation fault (SIGABRT) in test_etcp_two_instances
✅ Added comprehensive timer debug logging with DEBUG_CATEGORY_TIMERS
✅ Created uasync_print_resources() function for resource diagnostics
✅ Created utun_instance_diagnose_leaks() function for leak analysis
✅ Fixed cleanup order - cancel timers before destroying uasync instances
✅ Fixed timer cancellation to properly update counters
✅ Fixed socket cleanup to unregister from uasync before destruction
✅ Added detailed diagnostic output for memory leak tracking
✅ All tests now pass without crashes

Key fixes:
- Fixed use-after-free in test cleanup sequence
- Added proper timer leak detection and cleanup
- Enhanced debug capabilities for future debugging
- Fixed ETCP socket cleanup to prevent resource leaks

The test_etcp_two_instances now runs successfully without segmentation faults.
2026-01-22 00:57:45 +03:00
Evgeny 6429d1cda6 Build: Fixed test build configuration - moved tests from root Makefile.am to tests/Makefile.am
- Moved test configurations from main Makefile.am to tests/Makefile.am
- Fixed missing debug_config.c file in lib directory
- Updated lib/Makefile.am to include debug_config.c
- Tests now build correctly with 'make check'
- 2/3 tests passing (test_etcp_crypto, test_crypto)
- test_etcp_two_instances has connection timeout (separate networking issue)
2026-01-21 12:18:25 +03:00
Evgeny 4db35615e4 Fix: Added uasync_t typedef, fixed pkt_normalizer queue_new calls, added utun_instance_init function 2026-01-20 01:36:43 +03:00
Evgeny 3f7fd9f8ad Сохранить текущее состояние перед исправлением компиляционных ошибок 2026-01-19 23:10:44 +03:00
Evgeny f6c337bd1c FINAL: Encryption fully implemented with tests. Add etcp_connections_get_crypto_stats signature fix and tests in Makefile.am 2026-01-18 21:20:56 +03:00
Evgeny 20e5401ec9 ETCP_CONNECTIONS: add encryption support with secure channel (AES-CCM), nonce, counters. Simplified architecture by removing socket wrappers and integrating uasync_add_socket. pubkey exchange moved to INIT packet only. Added statistics counters. 2026-01-18 20:29:11 +03:00
Evgeny 3f0a23aa93 Fix build: rename u_async to lib, add missing constants, out-of-tree build support 2026-01-18 16:18:28 +03:00