diff --git a/telnet.py b/telnet.py index d07a76a..c98d4ae 100644 --- a/telnet.py +++ b/telnet.py @@ -142,11 +142,18 @@ class AnsiTelnet(protocol.Protocol): self.client.removeDgQuit(self.transport.loseConnection) self.client.quit() +class DOSNewlineTelnetTransport(telnet.TelnetTransport): + def dataReceived(self, data): + telnet.TelnetTransport.dataReceived(self, data) + if self.state == 'newline': + self.state = 'data' + self.applicationDataReceived(b'\r') + class AnsiFactory(ServerFactory): def __init__(self, fnRun): self.fnRun = fnRun def buildProtocol(self, addr): - p = telnet.TelnetTransport(AnsiTelnet, engine.Client()) + p = DOSNewlineTelnetTransport(AnsiTelnet, engine.Client()) p.factory = self print "built protocol for ", addr return p