From 23c1b75be49d22168cde77fb85e075ec16bb2ca5 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sat, 27 Jun 2020 18:53:10 -0400 Subject: [PATCH] handle clients that send only \r for enter key --- telnet.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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