Top Mud Sites Forum Return to TopMudSites.com
Go Back   Top Mud Sites Forum > Mud Development and Administration > MUD Coding
Click here to Register

Reply
 
Thread Tools
Old 01-03-2009, 10:13 AM   #1
Pathor
New Member
 
Join Date: Jan 2005
Posts: 5
Pathor is on a distinguished road
MCTS - The Mud Client Test Server.

I've made a little TCP server called MCTS which is great to use when testing & developing mud clients.

It is a TCP server that implements the TELNET protocol (including END OF RECORD prompts, MCCPv2, ECHO, NAWS and TERMINAL TYPE) and it has a few commands to help mud client writers test their clients.

One can tell it to send any provided text/data, it has support for sending all of xterm's 256 colours and one can tell it to negotiate MXP and MSP. It can send ZMP commands. One can make it close the zlib-stream if MCCPv2 is turned on (a great way to crash some clients). There are a few built in tests for various control sequences. It can also query the client's ident server. The server will also echo back any sent telnet protocol messages as "decoded" text and one can turn on/off remote/local echoing.

It can be downloaded .

It should be compilable on most unix-like environments (including Mac OS X and cygwin). The latest version has only been tested on Mac OS X 10.5 and some Debian GNU/linux version, but it probably shouldn't be too hard to get it to compile on other systems.

Feedback is appreciated.
Pathor is offline   Reply With Quote
Old 01-03-2009, 12:30 PM   #2
shadowfyr
Senior Member
 
Join Date: Oct 2002
Posts: 310
shadowfyr will become famous soon enough
Re: MCTS - The Mud Client Test Server.

Umm. I am presuming it "correctly" impliments MXP, instead of what most muds do, which is test themselves against zMud/cMud, while entirely ignoring the specifications? lol

What do I means by this? Well, strictly speaking, the specs state "very clearly" that [ and ] must be escaped when stardard text. zMud and cMud, for some incomprehensible reason, ignore this part of Zugg's own specification, and quite happilly pass through anything they don't recognize as a valid tag. This "may" be intentional, to allow easier debugging, but in clients like Mushclient, which have their own error detection for MXP tags, invalid tags are "invalid", otherwise they can't be detected by the error system as an actual error. Needless to say, this has caused no end if irritation for some people trying to log into servers that don't bother to read specifications clearly, and instead just hack something together, which "works" with zMud/cMud.

Some attempt has been made by Nick Gammon, in talking with Zugg, to clear up this confusion over what the spec "should" say, and thus what should happen with invalid tags, but, at the moment, one of the two implimentations is wrong, and its not at all clear, based on the specification, which one. Nick thinks his is, since it follows the specification strictly, while Zugg's response has so far been.. well, not much of anything, other than a vague statement that, "Yeah, we should probably clear that up, eventually."

Its like trying to test a web page using either Firefox (strict standards) or IE prior to 7, with, "We just made up something that seems to work OK." All is well and good, until you try displaying one of those later pages in anything that "is" following the spec. lol
shadowfyr is offline   Reply With Quote
Old 01-03-2009, 02:10 PM   #3
Aeran
Member
 
Join Date: May 2005
Posts: 208
Aeran is on a distinguished road
Re: MCTS - The Mud Client Test Server.

You mean <> tags I think. I believe the main reason for this is that in zMUD/cMUD MXP is always active, and in "open mode". For example you can send "gossip <font face="comic sans" size="20">hey!</font>" to annoy people with zMUD/cMUD client . It is shown even if the MUD doesn't support MXP.

The problem is that if MXP is always active, then you can't assume that the MUD will escape special characters. It most likely does not and you are forced to show "unrecognized tags". Else things like the prompt would be hidden on many MUDs.

Is it nasty implementation? Possibly. What can be done about it? MUDs can implement MXP minimally, and send <ESC>[7z at client connection for example in the login screen. That sets MXP in locked mode which means no tags should be parsed at all.

I think if MUDs follow the specification as much as they can, and properly escape tags then there shouldn't be any huge problems for MXP MUDs. If you look at web browsers they can be pretty forgiving on poorly formatted html. It is similar with zMUD/cMUD.
Aeran is offline   Reply With Quote
Old 01-03-2009, 07:40 PM   #4
Pathor
New Member
 
Join Date: Jan 2005
Posts: 5
Pathor is on a distinguished road
Re: MCTS - The Mud Client Test Server.

No, there are no tests at all for MXP. The only thing one can do is ask it to tell the client that the server supports MXP via telnet negotiation. Then one can use the "senddata" and "sendasis" commands to make it send any MXP string you want back to the client, or one can add new commands pretty easily to the server.

Same thing with MSP, it only negotiates that it is supported, then one has to use "senddata"/"sendasis" commands to actually get it to send MSP-commands.
Pathor is offline   Reply With Quote
Old 01-04-2009, 12:31 PM   #5
shadowfyr
Senior Member
 
Join Date: Oct 2002
Posts: 310
shadowfyr will become famous soon enough
Re: MCTS - The Mud Client Test Server.

Hmm. Well, yeah, I mean <>. lol Too much time spent using lists in LSL and not enough sleep the night before I posted. (Though why you need to escape both I never got. Its only < that causes the problem.)

But, the spec says nothing about the requirement not existing in "open" mode. Its one of the things that gets just damn vague. And, yeah, it does cause that sort of issue with some things in Mushclient, though there are now ways you can fix it, the most common one being a plugin that captures the input "before" the client's MXP parser ever sees it, which still in packet form, checks the packet for tags, escapes any invalid ones, tosses out the original packet, then feeds the "new" line through the system using something called "Simulate", which basically allows you to feed the client's internals lines that it can't tell apart from what its own TCP/IP system puts together from the mud's packets. But its quite absurd to have to do that. And how hard is it to fix. Like one line in the specification, either:

"Tags that are not valid, which includes text that uses '<>', but was not intended as a tag, such as prompts, will fall through and are displayed as normal text in 'open mode'."

or

"'<' must always be escaped, even in 'open mode', if it is not a tag."

In any case Panthor answered the question anyway. Its up to the people testing to determine if its working the way they "think" its supposed to, using their tests.
shadowfyr is offline   Reply With Quote
Reply


Thread Tools


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT -4. The time now is 12:49 PM.


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Style based on a design by Essilor
Copyright Top Mud Sites.com 2022