https://gitlab.synchro.net/main/sbbs/-/commit/720c3c0961a61d9ca9351a4a
Added Files:
src/syncterm/xfer_recv.c xfer_recv.h xmodem_cancel_test.c xmodem_cancel_test.vcxproj
Modified Files:
src/sbbs3/xmodem.c src/syncterm/CMakeLists.txt GNUmakefile SyncTERM.sln SyncTERM.vcxproj objects.mk term.c
Log Message:
Make X/YMODEM cancellation responsive
Long receive timeouts prevented transfer workers from observing a local cancellation until the current protocol read completed. Split
seconds-based reads into 100 ms polls while preserving the overall
timeout and returning received data immediately.
Stop the block, acknowledgement, and mode-negotiation retry loops when
the cancellation callback fires. Avoid reporting a deliberate abort as
a mode-negotiation failure.
Add regression coverage for interrupted waits, normal timeout
accounting, received data, and each affected protocol loop. Wire the
test into the GNU, CMake, and Visual Studio builds.
Refs SyncTERM ticket 273
Co-authored-by: OpenAI Codex <
[email protected]>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net