For clarity, self.linemode has no special significance--it was just an easy way to keep track of what was negotiated with the client.
On Fri, Dec 2, 2011 at 01:26, Patrick Mylund Nielsen <twis...@patrickmylund.com> wrote: > Hi Lee, > > Does using TelnetTransport 'will' and 'requestNegotation' work? E.g. > > self.will(LINEMODE) > self.requestNegotiation(LINEMODE, '') > > I'm not completely sure about LINEMODE, but if the client sends back a > DO, you might use something like: > > class MyTransport(TelnetTransport): > > def connectionMade(self): > self.linemode = False > self.will(LINEMODE) > TelnetTransport.connectionMade(self) > > def commandReceived(self, command, argument): > if argument == LINEMODE: > if command == DO: > self.requestNegotiation(LINEMODE, '') > self.linemode = True > elif command == DONT: > pass > else: > TelnetTransport.commandReceived(self, command, argument) > > def write(self, data): > if self.linemode: > # do something special > else: > self.transport.write(data) > > Best, > Patrick > > On Fri, Dec 2, 2011 at 01:12, Lee Orsino <lmors...@gmail.com> wrote: >> Hi all, >> >> I'm writing a twisted Telnet server and I want a client to be able to >> connect to it through some other interface, such as PuTTY. I can make the >> connection fine. But one of my requirements is to be able to tell the client >> to switch back and forth between buffered and unbuffered input modes >> depending on the state of the server. (Sometimes, the client should enter >> text, then hit enter to send. Other times, the client should send data >> character-by-character). >> >> I'm new at this, and maybe I'm missing something, but in my TelnetTransport >> object, I do something like this to disable buffering of client data: >> >> self.transport.write(IAC + WILL + LINEMODE) >> self.transport.write(IAC + SB + LINEMODE + MODE + chr(0) + IAC + SE) >> >> Not working though. PuTTY still requires me to hit <enter> after I type. >> I've tried various combinations of the above. I'm sure I'm doing something >> wrong but its just really hard to find an example of this on the net. I'd >> appreciate some advice as to how to proceed, or a simple example if you have >> time... >> >> I'm using the twisted Telnet classes found here: >> http://twistedmatrix.com/trac/browser/tags/releases/twisted-8.2.0/twisted/conch/telnet.py >> >> Thanks! >> >> >> _______________________________________________ >> Twisted-Python mailing list >> Twisted-Python@twistedmatrix.com >> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >> _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python