Synchronet v3.17b-Win32 (install) has been released (Jan-2019).

New Synchronet YouTube channel

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
server:terminal [2019/06/09 00:18]
digital man Details about changing key-bindings programmatically, installing hot key events, etc.
server:terminal [2019/06/30 22:59] (current)
digital man Added UTF-8 mention
Line 5: Line 5:
  
   * Supports ANSI X3.64 (color and monochrome),​ PETSCII, [[wp>​Remote_imaging_protocol|RIP]],​ and dumb terminals   * Supports ANSI X3.64 (color and monochrome),​ PETSCII, [[wp>​Remote_imaging_protocol|RIP]],​ and dumb terminals
-  * Supports [[wp>​ASCII|US-ASCII]],​ [[wp>​Code_page_437|CP437]] (a.k.a. IBM Extended ASCII) and CBM/​[[wp>​PETSCII]] character sets +  * Supports [[wp>​ASCII|US-ASCII]],​ [[wp>​Code_page_437|CP437]] (a.k.a. IBM Extended ASCII), UTF-8 (UNICODE), ​and CBM/​[[wp>​PETSCII]] character sets 
   * Supported Protocols: [[#​Telnet]],​ [[#​RLogin]],​ and [[#SSH]]   * Supported Protocols: [[#​Telnet]],​ [[#​RLogin]],​ and [[#SSH]]
  
Line 87: Line 87:
  
 The Synchronet Terminal Server will negotiate Telnet options with the client (enforcing echo and non-line-at-a-time modes), perform ''​IAC''​ (character 255) escaping, and CR/​LF->​CR and CR/​NUL->​CR translation (when not in //binary mode//). The Synchronet Terminal Server will negotiate Telnet options with the client (enforcing echo and non-line-at-a-time modes), perform ''​IAC''​ (character 255) escaping, and CR/​LF->​CR and CR/​NUL->​CR translation (when not in //binary mode//).
 +
 +==== Options ====
 +
 +Telnet options are negotiated between the client and server, normally without any indication to the user.
 +
 +Telnet options can be re-negotiated at any time during a Telnet session, but most options are only negotiated during the initial connection.
 +
 +^ Options ​      ^ Request ^ Description ^
 +| ECHO          | WILL    | Server will provide the echo of input keys, so request the the terminal does not echo (RFC-[[rfc>​857]])|
 +| SUP_GA ​       | WILL    | Server does not send or expect to receive any Telnet Go-Ahead (GA) commands (RFC-[[rfc>​858]]) |
 +| TERM_TYPE ​    | DO      | Server would like the client to provide the terminal-type,​ if available (RFC-[[rfc>​930]]) |
 +| TERM_SPEED ​   | DO      | Server would like the client to provide the terminal-speed,​ if available (RFC-[[rfc>​1079]]) |
 +| SEND_LOCATION | DO      | Server would like the client to provide the user's location, if available (RFC-[[rfc>​779]]) |
 +| NEGOTIATE_WINDOW_SIZE | DO | Server would like the client to provide the terminal dimensions (cols x rows), if available (RFC-[[rfc>​1073]]) |
 +| NEW_ENVIRON ​  | DO      | Server would like the client to provide environment variables (RFC-[[rfc>​1572]]) - unused |
 +
 +The BINARY_TX option (disabling special treatment of CR/LF and CR/NUL) is dynamically negotiated as needed, for file transfers.
 +
 +=== Debugging ===
 +
 +The Terminal server logs all Telnet option negotiations using a //​Debugging//​ log-level:
 +
 +<​file>​
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: WILL Echo
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: WILL Suppress Go Ahead
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DO Terminal Type
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DO Terminal Speed
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DO Send Location
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DO Negotiate About Window Size
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DO New Environment Option
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: DO Echo
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: DO Suppress Go Ahead
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: WILL Terminal Type
 +  6/20  05:​56:​41p ​ Node 1 requesting telnet terminal type
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: WON'T Terminal Speed
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DON'T Terminal Speed
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: WON'T Send Location
 +  6/20  05:​56:​41p ​ Node 1 sending telnet cmd: DON'T Send Location
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: WILL Negotiate About Window Size
 +  6/20  05:​56:​41p ​ Node 1 received telnet sub-negotiation command: Negotiate About Window Size
 +  6/20  05:​56:​41p ​ Node 1 received telnet window size: 80x24
 +  6/20  05:​56:​41p ​ Node 1 received telnet cmd: WON'T New Environment Option
 +  6/20  05:​56:​41p ​ Node 1 received telnet sub-negotiation command: Terminal Type
 +  6/20  05:​56:​41p ​ Node 1 received telnet terminal type: ANSI
 +</​file>​
 +
  
 ===== SSH ===== ===== SSH =====
Line 93: Line 139:
 SSHv2 support provided by [[dev:​dependencies#​cryptlib]]. SSHv2 support provided by [[dev:​dependencies#​cryptlib]].
  
 +==== cryptlib.key ====
 +
 +The SSH private key is stored in the file ''​[[dir:​ctrl]]/​cryptlib.key''​ and is encrypted with the configured System Password (from [[util:​SCFG]]->​System). If the System Password is changed **after** the ''​cryptlib.key''​ file has been generated (and encrypted), you will need to delete the key file and recycle the terminal server for the key file to be regenerated and re-encrypted with the new System Password.
 +
 +The following Terminal Server log message indicates a problem decrypting the ''​cryptlib.key''​ file:
 +  '​Couldn'​t import the session key used to protect the private key' (-22) getting private key
 ===== RLogin ===== ===== RLogin =====
-[[ftp://ftp.rfc-editor.org/​in-notes/​rfc1282.txt|RLogin]] clients are supported, by default, on the standard RLogin TCP port: 513.+BSD Rlogin (RFC-[[rfc>1282]]clients are supported, by default, on the standard RLogin TCP port: 513. 
 + 
 +==== History ​ ====
  
-==== History of Synchronet'​s ​support for BSD RLogin ​====+Synchronet'​s RLogin ​support has gone through some significant changes since its introduction in 2000.
  
 === SBBS v3.00c 2000 === === SBBS v3.00c 2000 ===
Line 145: Line 199:
  
   * [[person:​digital man]] removed and deprecated the ''​USE_2ND_RLOGIN''​ option (and related [[monitor:​sbbscon|sbbs]] command-line option and [[monitor:​sbbsctrl]] checkbox) as this is now the **only** behavior supported by the Synchronet [[server:​Terminal]] Server: the first string received from the RLogin client (''​client-user-name''​) **may** be a password, the second string received (''​server-user-name''​) **must** be a valid user ID (alias).   * [[person:​digital man]] removed and deprecated the ''​USE_2ND_RLOGIN''​ option (and related [[monitor:​sbbscon|sbbs]] command-line option and [[monitor:​sbbsctrl]] checkbox) as this is now the **only** behavior supported by the Synchronet [[server:​Terminal]] Server: the first string received from the RLogin client (''​client-user-name''​) **may** be a password, the second string received (''​server-user-name''​) **must** be a valid user ID (alias).
-  * [[person:​digital man]] changed the ''​bbs.rlogin_gate''​ function to accept 3 optional arguments: ''​client-user-name'',​ ''​server-user-name'',​ and ''​terminal'',​ in the order specified by the RFC 1282.+  * [[person:​digital man]] changed the ''​bbs.rlogin_gate''​ function to accept 3 optional arguments: ''​client-user-name'',​ ''​server-user-name'',​ and ''​terminal'',​ in the order specified by the RFC-[[rfc>1282]].
  
 ===== JavaScript ===== ===== JavaScript =====

In Other Languages