[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