Subj : src/syncterm/rlogin.c To : Git commit to main/sbbs/master From : Deuc¨ Date : Sat May 09 2026 18:36:58 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) --- þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net .