BBS:      TELESC.NET.BR
Assunto:  src/syncterm/conn.h conn_telnet.c rlogin.c rlogin.h
De:       Deuc¨
Data:     Thu, 23 Apr 2026 18:36:00 -0700
-----------------------------------------------------------
https://gitlab.synchro.net/main/sbbs/-/commit/af5bb19de5b53360d1f357c0
Modified Files:
	src/syncterm/conn.h conn_telnet.c rlogin.c rlogin.h
Log Message:
SyncTERM: RLogin raw/cooked mode + scope rlogin hooks to RLOGIN conn types

Implement the remaining RFC 1282 OOB control bytes: 0x10 (enter raw)
and 0x20 (return to cooked).  Cooked mode (the default) now does local
TTY flow control  DC3 in user input pauses the recv loop, DC1
resumes  and neither byte reaches the remote.  Raw mode passes both
through.

The rlogin protocol has no client-initiated raw request, so server-
and client-initiated raw share a single flag: conn_api.binary_mode,
upgraded to _Atomic bool.  conn_binary_mode_on() now flips raw mode
for rlogin, so zmodem/ymodem/xmodem transfers stay transparent to
DC1/DC3 without the transfer code knowing about rlogin at all.  The
side-effect hook rlogin_binary_mode_on() just clears any pending
pause; no off-hook needed.

Also scope the rlogin-specific OOB / DC1/DC3 / SO_OOBINLINE paths to
CONN_TYPE_RLOGIN and CONN_TYPE_RLOGIN_REVERSED.  rlogin_connect is
shared with RAW and MBBS_GHOST, and the input/output thread pair is
shared with telnet_connect too; a new rlogin_active atomic gates all
rlogin behavior so those other conn types remain transparent pipes.

The 4 rlogin handshake conn_send()s now run BEFORE tx_parse_cb is
installed, so a password or username containing 0x11/0x13 is passed
through verbatim instead of being stripped as XON/XOFF.

Atomics are explicitly atomic_store()'d at the top of rlogin_connect
and telnet_connect; memset in conn_connect isn't a valid _Atomic
init, and stale flag state from a prior session would be a mess.

Co-Authored-By: Claude Opus 4.7 (1M context) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]