4.16.1 ‘Handling of OLD_ENVIRON ambiguity’
The original Telnet mechanism for passing environment variables was badly specified. At the time the standard (RFC 1408) was written, BSD telnet implementations were already supporting the feature, and the intention of the standard was to describe the behaviour the BSD implementations were already using.
Sadly there was a typing error in the standard when it was issued, and two vital function codes were specified the wrong way round. BSD implementations did not change, and the standard was not corrected. Therefore, it's possible you might find either BSD or RFC-compliant implementations out there. This switch allows you to choose which one PuTTY claims to be.
The problem was solved by issuing a second standard, defining a new Telnet mechanism called NEW_ENVIRON, which behaved exactly like the original OLD_ENVIRON but was not encumbered by existing implementations. Most Telnet servers now support this, and it's unambiguous. This feature should only be needed if you have trouble passing environment variables to quite an old server.
4.16.2 Passive and active Telnet negotiation modes
In a Telnet connection, there are two types of data passed between the client and the server: actual text, and negotiations about which Telnet extra features to use.
PuTTY can use two different strategies for negotiation:
In active mode, PuTTY starts to send negotiations as soon as the connection is opened.
In passive mode, PuTTY will wait to negotiate until it sees a negotiation from the server.
The obvious disadvantage of passive mode is that if the server is also operating in a passive mode, then negotiation will never begin at all. For this reason PuTTY defaults to active mode.
However, sometimes passive mode is required in order to successfully get through certain types of firewall and Telnet proxy server. If you have confusing trouble with a firewall, you could try enabling passive mode to see if it helps.
4.16.3 ‘Keyboard sends Telnet special commands’
If this box is checked, several key sequences will have their normal actions modified:
the Backspace key on the keyboard will send the Telnet special backspace code;
Control-C will send the Telnet special Interrupt Process code;
Control-Z will send the Telnet special Suspend Process code.
You probably shouldn't enable this unless you know what you're doing.
4.16.4 ‘Return key sends Telnet New Line instead of ^M’
Unlike most other remote login protocols, the Telnet protocol has a special ‘new line’ code that is not the same as the usual line endings of Control-M or Control-J. By default, PuTTY sends the Telnet New Line code when you press Return, instead of sending Control-M as it does in most other protocols.
Most Unix-style Telnet servers don't mind whether they receive Telnet New Line or Control-M; some servers do expect New Line, and some servers prefer to see ^M. If you are seeing surprising behaviour when you press Return in a Telnet session, you might try turning this option off to see if it helps.
4.17 The Rlogin panel
The Rlogin panel allows you to configure options that only apply to Rlogin sessions.
4.17.1 ‘Local username’