Skip to content

2.5.0

Choose a tag to compare

@jquast jquast released this 14 Feb 23:55
· 46 commits to master since this release
  • change: telnetlib3-client now defaults to raw terminal mode (no line buffering, no local echo), which is correct for most servers. Use --line-mode to restore line-buffered local-echo behavior.
  • change: telnetlib3-server --pty-exec now defaults to raw PTY mode. Use --line-mode to restore cooked PTY mode with echo.
  • change: connect_minwait default reduced to 0 across BaseClient, open_connection(), and telnetlib3-client. Negotiation continues asynchronously. Use --connect-minwait to restore a delay if needed, or use TelnetWriter.wait_for() in server or client shells to await a specific negotiation state.
  • new: Color, keyboard input translation and --encoding support for ATASCII (ATARI ASCII) and PETSCII (Commodore ASCII).
  • new: SyncTERM/CTerm font selection sequence detection (CSI Ps1 ; Ps2 SP D). Both telnetlib3-fingerprint and telnetlib3-client detect font switching and auto-switch encoding to the matching codec (e.g. font 36 = ATASCII, 32-35 = PETSCII, 0 = CP437). Explicit --encoding takes precedence.
  • new: TRACE log level (5, below DEBUG) with hexdump style output for all sent and received bytes. Use --loglevel=trace.
  • bugfix: robot_check() now uses a narrow character (space) instead of a wide Unicode character, allowing retro terminal emulators to pass.
  • bugfix: ATASCII codec now maps bytes 0x0D and 0x0A to CR and LF instead of graphics characters, fixing garbled output when connecting to Atari BBS systems.
  • bugfix: ATASCII codec normalizes CR and CRLF to the native ATASCII EOL (0x9B) during encoding, so the Return key works correctly.
  • bugfix: PETSCII bare CR (0x0D) is now normalized to CRLF in raw terminal mode and to LF in telnetlib3-fingerprint banners.
  • bugfix: telnetlib3-fingerprint re-encodes prompt responses for retro encodings so servers receive the correct EOL byte.
  • bugfix: telnetlib3-fingerprint no longer crashes with LookupError when the server negotiates an unknown charset. Banner formatting falls back to latin-1.
  • bugfix: TelnetClient.send_charset() normalises non-standard encoding names (iso-8859-02 to iso-8859-2, cp-1250 to cp1250, etc.).
  • enhancement: telnetlib3-fingerprint responds more like a terminal and to more y/n prompts about colors, encoding, etc. to collect more banners for the https://bbs.modem.xyz/ project.
  • enhancement: telnetlib3-fingerprint banner formatting uses surrogateescape error handler, preserving raw high bytes (e.g. CP437 art) as surrogates instead of replacing them with U+FFFD.

Full Changelog: 2.4.0...2.5.0