Telnet linebreaks

Patrick M. Nielsen thirsteh at gmail.com
Thu May 25 12:31:09 EDT 2006


*bump* :)

On 5/24/06, Patrick M. Nielsen <thirsteh at gmail.com> wrote:
>
> 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/20060525/71533b3e/attachment.html>


More information about the Python-list mailing list