BBS: TELESC.NET.BR Assunto: src/syncterm/rlogin.c De: Deuc¨ Data: Sat, 9 May 2026 18:36:58 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/d6dc31c7e5e083e7e254c97c Modified Files: src/syncterm/rlogin.c Log Message: SyncTERM: rlogin OOB via exceptfds + MSG_OOB Winsock2's SO_OOBINLINE + SIOCATMARK combo doesn't reliably surface RFC 1282 urgent-mode control bytes, so rlogin's mode-switch / window- size requests were dropped on Windows. Drop SO_OOBINLINE entirely and detect urgent via select()'s exceptfds, consuming the byte from its separate mailbox with recv(MSG_OOB) once SIOCATMARK shows the inline stream has drained to the mark. Same code path on Windows and POSIX. socket_check() is left untouched (many out-of-tree consumers); the input thread now uses a bespoke inline select() that watches both readfds and exceptfds. Once OOB is signaled exceptfds is dropped from the wait set to avoid a busy-loop while we wait for the inline read pointer to reach the urgent point RFC 1282 mode-switch bytes (0x10/0x20) apply to data following the urgent ptr, so pre-mark inline data must drain in the old mode first. Co-Authored-By: Claude Opus 4.7 (1M context)n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]