<!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>