[Twisted-Python] Screen clearing in the Manhole

J Todd Ulrich todd.ulrich at cogeco.ca
Tue Aug 25 17:01:48 MDT 2015


Can you remove me please. I am in NO WAY affiliated with your organization. Virus?

Walk Tall. 

J Todd Ulrich
m. 416.625.3209

Please excuse brevity as this message sent from my BlackBerry 10 smartphone on the Rogers network.
  Original Message  
From: John Santos
Sent: Tuesday, August 25, 2015 5:58 PM
To: Twisted general discussion
Reply To: Twisted general discussion
Subject: Re: [Twisted-Python] Screen clearing in the Manhole



Someone wrote: (Sorry, reply in my mail client doesn't give me an
editable text version of the mail. Instead, it is including it as an
attachment. I don't know why this happens. I do know from bitter
experience that if I don't delete the attachments from my reply, users
of brain-dead mail clients (I'm looking at you, Outlook) can't see
me reply but just see the attached copy of the original message. So
I cut and pasted some context so people know what I'm talking about.)

> As to where it happens, look at
> twisted.conch.recvline.RecvLine.connectionMade() and
> twisted.conch.insults.insults.TerminalProtocol.makeConnection()
> 
> You could step on the RecvLine. initializeScreen(), but I have no idea what
> the side effects are. (And of course if you bypass all or part of it, even
> if it works now, it's alway subject to future breakage.
>
> On Tue, Aug 25, 2015 at 12:27 PM, Peter Westlake 
> <peter.westlake at pobox.com> wrote:
> >
> > I'm making a manhole service in the usual way:
[...]

t.c.r.R.connectionMade() calls self.initializeScreen(), which in turn 
calls self.terminal.reset()

I'm pretty sure s.t.reset() is actually twisted.conch.insults.reset(),
which has a bug (or an undesirable feature), it sends a "hard reset"
escape sequence to the terminal (<ESC>c). This freaks out many terminal
emulators, and real, VT100-compatible terminals, in many different ways.

I've tested in Kermit-95, PuTTy, xterm, DECterm (a VT emulator written for
DECwindows, DEC's X implementation) and on real DEC VT420 and VT520
terminals. They act differently, but none are pleasant. For example, a
VT520 does a power-cycle on the CRT (which takes about 10 seconds),
reloads the saved configuration, and (if you have multiple sessions
enabled) switches to Session 1. 

The VT420 and VT520 manuals say about "hard reset", basically, "Don't
do that!!"

I have a patch to change it to send a soft reset (<ESC>[!p) and to set the
terminal into "replace mode" (<ESC>[4l) (sometimes the software thought it
was in overstrike mode, but the terminal thought it was in insert mode,
with bad results. Ideally, it would set both the software and hardware to
what ever mode the user desired. The hard reset would set the terminal to
whichever mode was stored in its permanent settings. For a software
terminal emulator, it was a dice roll.)

Depending on the terminal emulator or physical terminal you are using,
this probably explains your symptoms.

See ticket # 7514: https://twistedmatrix.com/trac/ticket/7514

-- 
John Santos
Evans Griffiths & Hart, Inc.
781-861-0670 ext 539




More information about the Twisted-Python mailing list