Telnet linebreaks
Patrick M. Nielsen
thirsteh at gmail.com
Tue May 23 18:49:54 EDT 2006
Oh, and, apologies for the "inpythonic" nature of this issue.
On 5/24/06, Patrick M. Nielsen <thirsteh at gmail.com> wrote:
>
> Hey guys.
>
> I have begun playing with the Simple MUD server example from the Stackless
> website
> ( http://www.stackless.com/Members/rmtew/code/mud.py )
> and it's all good so far, however, I've come to notice something that I
> remember from back
> in the days (some old mud code), but I don't remember what I did to fix
> it.
>
> While the MUD reads lines from Telnet clients just fine, clients such as
> Gmud are practically ignored,
> probably because Gmud doesn't send Telnet-valid data ('\x08'?).
>
> However, a MUD that is not accessible to one such client or others isn't
> much good, so I'd appreciate
> some help in pinpointing the problem.
>
> These are the code blocks that need modification (I believe)
>
> def read(self): # TELNET
> ret = self.readChannel.receive()
> if self.echo:
> if ret == '\x08':
> self.send(ret+" ")
> self.send(ret)
> return ret
>
> def readline(self): # TELNET
> buf = self.readBuffer
>
> while True:
> if buf.find('\r\n') > -1: # MUD clients that aren't using the
> telnet protocol
> i = buf.index('\r\n') # need to be able to do stuff.
> ret = buf[:i+2]
> self.readBuffer = buf[i+2:]
> while '\x08' in ret:
> i = ret.index('\x08')
> if i == 0:
> ret = ret[1:]
> else:
> ret = ret[:i-1]+ret[i+1:]
> return ret
>
> buf += self.read()
>
> I'm suspecting that Gmud doesn't send '\x08', since from looking at some
> old DIKU code,
> I see that the if '\n' || '\r' are there as well, but there is no check
> for '\x08'. If this is indeed
> the cause of my problem, how would I go about doing it?
>
> Thanks in advance.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20060524/7af8512c/attachment.html>
More information about the Python-list
mailing list