[Twisted-Python] Forcing telnet connections to character mode using twisted.conch.telnet.Telnet
Jean-Paul Calderone
exarkun at divmod.com
Thu Apr 24 13:24:25 MDT 2008
On Thu, 24 Apr 2008 11:54:41 -0700 (PDT), Bryan Schmersal <bschmer at yahoo.com> wrote:
>I've been using twisted for about 36 hours now and have an application put together, but in order to get it working just the way I want it to, I want to force the other end of the telnet connection to go into character-at-a-time mode. I haven't seen any examples of setting IAC options, but perhaps I haven't been looking in the proper places.
>
>Does anyone have any hints?
twisted.conch.telnet.Telnet has four methods for option negotiation:
do, dont, will, and wont. These correspond to IAC DO, IAC DONT, IAC
WILL, and IAC WONT, respectively. You probably want to do something
with the LINEMODE option, but I forget what exactly. Once you enable
LINEMODE, you'll probably want to do some subnegotiation about it.
Telnet has a requestNegotiate method for this. A quick look at RFC
1184 suggests that what you want is roughly IAC DO LINEMODE and,
assuming that succeeds, IAC SB LINEMODE MODE (~EDIT & other) IAC SE.
This is easy enough to do with the Telnet class:
d = self.do(LINEMODE)
def cbLinemode(ignored):
self.requestNegotiate(LINEMODE, LINEMODE_MODE + '\0')
You'll also need an enableRemote implementation which allows LINEMODE
to be enabled (it just needs to return True for that option).
Hope this helps, let me know how it turns out. :)
Jean-Paul
More information about the Twisted-Python
mailing list