<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>I'm making a manhole service in the usual way:<br></div>
<div> </div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    class PF(ServerProtocol):<br></span></div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">        def protocolFactory(*a, **kw):<br></span></div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">            return manhole.Manhole(namespace)<br></span></div>
<div> </div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    realm = manhole_ssh.TerminalRealm()<br></span></div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    realm.chainedProtocolFactory = PF<br></span></div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    mh_portal = portal.Portal(realm)<br></span></div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    mh_portal.registerChecker(checker)<br></span></div>
<div> </div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    manhole_service = TCPServer(0, manhole_ssh.ConchFactory(mh_portal))<br></span></div>
<div><span style="font-family: verdana, sans-serif, sans-serif;" class="font">    manhole_service.startService()<br></span></div>
<div> </div>
<div>and I'd like to print a message when the terminal is opened. This change does it:<br></div>
<div> </div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">    class PF(ServerProtocol):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">        def protocolFactory(*a, **kw):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">            class Manhole(manhole.Manhole):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">                def connectionMade(self):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">                    super(Manhole, self).connectionMade()</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">                    self.terminal.write('Hello')</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">            return manhole.Manhole(namespace)</span><br></div>
<div> </div>
<div>and so does this version, which is better because t.c.i.i.ServerProtocol.connectionMade says it is the place to write messages:<br></div>
<div><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">    class PF(ServerProtocol):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">        def protocolFactory(*a, **kw):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">            return manhole.Manhole(namespace)</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">        def connectionMade(self):</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">            ServerProtocol.connectionMade(self)</span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font"><br></span><span style="font-family: "Trebuchet MS", sans-serif, sans-serif;" class="font">            self.write('Hello')</span><br></div>
<div> </div>
<div>But in both cases, after the message the screen is cleared by what looks like a form feed, and another prompt is printed. So far I can't find where in the code this happens. Is there a way to print a message and not have it scrolled off the screen?<br></div>
<div> </div>
<div>Thanks,<br></div>
<div> </div>
<div>Peter.<br></div>
<div> </div>
</body>
</html>