View Single Post
Old 03-18-2009, 08:44 PM   #12
locke
Banned
 
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
locke is an unknown quantity at this point
Re: MSSP (Mud Server Status Protocol)

I did use mth. I am using files, renamed:
mud.h -> mssp.h
telnet.h -> telnet.h
telopt.c -> telopt.c
table.c -> mssp_table.c
client.c -> mssp_client.c

I am using your write_to_descriptor only for your code, since I use something called "write_to_connection"

I am using translate_telopts(), zlib, etc.

I added the content, verbatim, to DESCRIPTOR_DATA (called CONNECTION_DATA here):

msouttop
msoutbuf

these are not used at all actually.

Well, the preface to this is that NiMUD uses character mode, not line mode.

There has been a slight issue during login prior to this where it gets stuck waiting for something, and then a few code characters show up in the buffers from the remote client.

NiMUD simulates local echo by receiving characters from the remote host and then printing the characters that pass through a filter, discarding unwanted characters (sometimes telnet codes). This happens after the call to translate_telopts, however.

It seems what is happening now that I have inserted your translate_telopts() is that during the first few lines it at first is set the same way (or close to properly for character mode) and then after one line of text, something is switching it back into line mode. I'm trying to figure out where you are sending those codes inside the telopt.c client.c etc... but I have not yet found this issue. Ideally, it would properly manage character mode, then switch into line mode only if MSSP needs it, then return the connection to character mode.

The reason NiMUD does this is to interpret ansi keyboard codes like \x1b[C

Any ideas how to stop this from happening? It seems once you've logged out, and you log in the second time, something goes awry with the ability to hit return. Weird.


Last edited by locke : 03-18-2009 at 09:15 PM.
locke is offline   Reply With Quote