RFC 1408

Telnet Environment Option

πŸ“… published January 1993, from ietf

Telnet Environment Option πŸŽ€ (part 1 of 2)

  • Network Working Group 🌸
  • Request for Comments: 1408 πŸ“œ
  • Editor: D. Borman, Cray Research, Inc. πŸ’…
  • Date: January 1993 πŸ“…
  • Status: IAB standards track protocol ⭐
  • Obsoletes / Updates: nothing is listed here, so this doc doesn't say it obsoletes or updates anything 🫢

Status of this Memo ✨

okay so this RFC is an IAB standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements 🫢 For the standardization state and status of this protocol, check the current edition of the "IAB Official Protocol Standards." Distribution of this memo is unlimited 🌈.

Abstract πŸ¦‹

this doc is all about passing environment information between a telnet client and server πŸ’– Using it lets a telnet user push configuration info over to a remote host when they connect. main character energy, honestly πŸ‘‘

1. Command Names and Codes πŸ“

bestie, here are the names and numeric codes. ENVIRON is 36, and it comes with its own sub-commands and types:

      ENVIRON         36
          IS               0
          SEND             1
          INFO             2

          VAR              0
          VALUE            1
          ESC              2
          USERVAR          3

2. Command Meanings 🧚

okay, this section is where the magic happens, so let's go command by command ✨

IAC WILL ENVIRON

the sender of this one is willing to send environment variables πŸ’…

IAC WONT ENVIRON

the sender of this one refuses to send environment variables πŸ™ˆ

IAC DO ENVIRON

the sender is willing to receive environment variables 🫢

IAC DONT ENVIRON

the sender refuses to accept environment variables πŸ’€

IAC SB ENVIRON SEND [ type ... [ type ... [ ... ] ] ] IAC SE

the sender is asking the remote side to send its environment variables πŸ”₯ The type can be VAR or USERVAR, which means well known variable names or user variable names. Only the side that is DO ENVIRON may start a SEND command πŸ‘‘ If you give a list, then only those variables should be sent ✨ If there's no list, the default environment (both well known and user defined variables) should be sent 🌸 And if one of the variables has no name, then all the variables of that type (well known or user defined) in the default environment should be sent 🧚

IAC SB ENVIRON IS type ... [ VALUE ... ] [ type ... [ VALUE ... ] [

this is the sender actually sending environment variables, and it happens in response to a SEND request πŸ’– Only the side that is WILL ENVIRON may send an IS command πŸ¦‹ The type/VALUE pairs must come back in the same order the SEND asked for them, and there must be a response for each type ... that was explicitly requested πŸ“ The type will be VAR or USERVAR, and you can send multiple environment variables in one go 🫢

Here's how to read the pieces. The characters after a type, up to the next type or VALUE, are the variable name. The characters after a VALUE, up to the next type, are the value. If a type isn't followed by a VALUE (like by another VAR, USERVAR, or IAC SE), then that variable is undefined πŸ’€ If a VALUE is immediately followed by a type or IAC, then the variable is defined but has no value 🌈

The escaping rules are a whole vibe too πŸ”₯ If an IAC shows up between the IS and the IAC SE, it must be sent as IAC IAC. If a variable or a value contains a VAR, it must be sent as ESC VAR. If a variable or a value contains a USERVAR, it must be sent as ESC USERVAR. If it contains a VALUE, it must be sent as ESC VALUE. And if it contains an ESC, it must be sent as ESC ESC πŸ‘‘

IAC SB ENVIRON INFO type ... [ VALUE ... ] [ type ... [ VALUE ... ] [

INFO is basically the IS command, just with INFO instead of IS πŸ¦‹ Only the side that is WILL ENVIRON may send an INFO command. It is not for sending initial info, though. That's what the SEND/IS sequence is for πŸ™… INFO is there to propagate changes in environment variables, and it may be spontaneously generated ✨

3. Default Specification πŸŽ€

the default for this option is:

WONT ENVIRON
DONT ENVIRON

which means there will not be any exchange of environment information πŸ’€

8. References πŸ“š

okay bestie, the receipts 🧾 every single source this spec leans on, no cap

  • [1] VanBokkelen, J., "Telnet Terminal-Type Option", RFC 1091, FTP Software, Inc., February 1989.
  • [2] Postel, J. and J. Reynolds, "File Transfer Protocol (FTP)", STD 9, RFC 959, USC/Information Sciences Institute, October 1985.
  • [3] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1340, USC/Information Sciences Institute, July 1992.
  • [4] Marcy, G., "Telnet X Display Location Option", RFC 1096, Carnegie Mellon University, March 1989.

Security Considerations πŸ”

bestie, this part is serious 😭 Security issues are discussed in Section 7. Go check it out, it's the whole tea β˜•


Author's Address πŸ–ŠοΈ

Here's where to find the author, David A. Borman, Editor πŸ’œ

David A. Borman, Editor
Cray Research, Inc.
655F Lone Oak Drive
Eagan, MN 55123

Phone: (612) 452-6650
EMail: dab@CRAY.COM

Mailing List: telnet-ietf@CRAY.COM

Chair's Address πŸŽ€

wanna reach the working group? slide into the current chair's inbox πŸ’Œ

Steve Alexander
INTERACTIVE Systems Corporation
1901 North Naper Boulevard
Naperville, IL 60563-8895

Phone: (708) 505-9100 x256
EMail: stevea@isc.com
πŸ“¦ where this page comes from