[Simh] Question on telnet mantra in simh
Holger Veit
holger.veit at iais.fraunhofer.de
Wed Nov 10 10:00:21 EST 2010
Am 10.11.2010 14:55, schrieb Mark Pizzolato - Info Comm:
> On Tuesday, November 09, 2010 at 12:16 AM, Holger Veit
> <holger.veit at iais.fraunhofer.de> said:
>> while implementing telnet support in my terminal emulator, I came
> across
>> the "Telnet Mantra"
>> in sim_tmxr.c:
>> static char mantra[] = {
>> TN_IAC, TN_WILL, TN_LINE,
>> TN_IAC, TN_WILL, TN_SGA,
>> TN_IAC, TN_WILL, TN_ECHO,
>> TN_IAC, TN_WILL, TN_BIN,
>> TN_IAC, TN_DO, TN_BIN
>> };
>>
>> I think I understand that the simh terminal multiplexer is a server in
> telnet
>> speech, accessed by some sort of telnet client program operated by the
>> user.
> Analysis removed [..]
>> So I think, the first line is at best useless, and should be removed,
> or, perhaps
>> better, replaced by a IAC WONT LINEMODE.
>>
>> Am I overseeing anything?
> Probably not, BUT in the end, it is all about if/how your suggestion
> works when deployed. A useful test would be to run a simh VAX running
> your favorite OS with a terminal mux configured.
>
> Test connections with several different telnet client implementations.
>
> If the same operation is observed with your proposed change installed
> and without it installed then it should not matter.
>
> Personally, I have never used a simulated terminal mux in simh (beyond a
> simple 'does it work' test). I have always configured TCP/IP networking
> on the simulated system and then used telnet to directly connect to the
> running OS. This removes complex issues like flow control from the
> simulator layer.
>
> - Mark
>
The VAX is not my main concern, as it allows both telnetted as well as
terminal MUX sessions. Other SIMH emulators don't have a network at all,
but allow telnetting to a multiplexer to provide sort of a look and feel
of terminal operations. Some emulators even attach a real terminal
through a serial line of the PC, which is where flow control really matters.
I stumbled on this when attempting to write a terminal emulator, as
commonly available terminal emulators often claim to be "VT100"- or
"ADM3A"-compatible, but actually just understand the dozen or so cursor
movement commands which is insufficient for running emulated
forms-handling software and other stuff needing more than that, for
instance.
Now, basically I have the telnet client in my hands, and have the option
to make it RFC-compliant, or SIMH-compliant, in the latter case by
inserting some kludge to work around a what I think is a misbehaviour -
but I want to make sure it is a misbehaviour, and not a
misinterpretation of the RFC. So the proposal "check with different
telnet clients" is not an answer as I could make a client which take the
offer IAC WILL LINEMODE as given and actually feed suboption garbage to
the emulated machine, perfectly compliant with the RFC.
As QCTERM, as described in the comments in sim_tmxr.c, is also not
completely compliant, this just shows that the whole RFC stuff does not
seem so simple as a "just do what others do", so therefore my question.
--
Holger
More information about the Simh
mailing list