KaVir
Wizard


Group: Members
Posts: 2,149
Joined: Jun 19, 2006
|
#1 id:44821 Posted Apr 2, 2010, 4:30 pm
|
I didn't really understand telnet negotiation when MSSP was discussed originally, but I've been playing around with it recently and thought I might as well get some practice by adding the telnet version of MSSP.
What I was hoping for was something like this:
*** CLIENT CONNECTS ***
CLIENT: Do you provide MSSP data? (IAC DO MSSP)
SERVER: Yes, I will send you a feature list if you want it. (IAC WILL MSSP)
CLIENT: Great! Please send it over. (IAC SB MSSP SEND IAC SE)
SERVER: Here goes... (IAC SB MSSP MSSP_VAR "PLAYERS" MSSP_VAL "52" IAC SE)
But it looks like the server has to initiate it, like this:
*** CLIENT CONNECTS ***
SERVER: By the way, I will send MSSP data if you want it. (IAC WILL MSSP)
CLIENT: Yes, I'd like you to do that. (IAC DO MSSP)
SERVER: Here goes... (IAC SB MSSP MSSP_VAR "PLAYERS" MSSP_VAL "52" IAC SE)
Which brings me back to the old problem of:
*** CLIENT CONNECTS ***
SERVER: By the way, I will send MSSP data if you want it. (IAC WILL MSSP)
CLIENT: Hey, negotiation! Right then, ECHO OFF.
SERVER: Oh poo, sorry. I didn't realise you were using windows telnet.
Have I understood this correctly? Is there some reason why mud clients can't initiate negotiation when they first connect?
|
......................... KaVir at God Wars II: godwars2.org 3000 Roomless world. Manual combat. Endless possibilities.
|
|
KaVir
Wizard


Group: Members
Posts: 2,149
Joined: Jun 19, 2006
|
#2 id:44822 Posted Apr 2, 2010, 5:08 pm
|
I used tintin's "#config {debug telnet} on" mode, and MSSP is indeed sending the data correctly...but only after the player has logged on. Which is pretty useless for crawlers, really. Oh well, I still support text mode.
|
......................... KaVir at God Wars II: godwars2.org 3000 Roomless world. Manual combat. Endless possibilities.
|
|
Scandum
Wizard


Group: Members
Posts: 1,783
Joined: Aug 8, 2006
|
#3 id:44823 Posted Apr 2, 2010, 5:41 pm
|
The downside of text mode is that the crawler goes around hammering "MSSP-PLAINTEXT" if the server doesn't send IAC WILL MSSP in a timely fashion.
Regardless, you can't really send IAC DO MSSP as some servers will interpret this as a user command. If there is no response and you follow it up with "MSSP-PLAINTEXT" some servers might see this as IAC DO MSSP "MSSP-PLAINTEXT" and ignore it as garbage, even when they support text mode. I'm quite sure this'll be the case on SmaugFUSS servers. As far as I can predict it'd be a total mess.
PuTTY has a setting where it goes ahead and starts telnet negotiations, which gives login problems on non telnet capable MUD servers, so the only case where you can justify the client starting telnet negotiations is when connecting to port 23, which is the assigned telnet port as per the Internet standard.
For those not yet aware of the solution, use NEW-ENVIRON to detect Windows telnet and start echoing back what the user types, you can look at the Lola codebase for an actual implementation, not sure if there are others.
|
|
|
David Haley
Wizard


Group: Members
Posts: 7,783
Joined: Jun 30, 2007
|
#4 id:44824 Posted Apr 2, 2010, 5:44 pm
|
Quote:Regardless, you can't really send IAC DO MSSP as some servers will interpret this as a user command.
Wait, this is a problem and sending "MSSP-PLAINTEXT" isn't?
Quote:I'm quite sure this'll be the case on SmaugFUSS servers. As far as I can predict it'd be a total mess.
Well, fortunately for us all, SmaugFUSS is pretty easy to fix in this regard...
|
|
|
KaVir
Wizard


Group: Members
Posts: 2,149
Joined: Jun 19, 2006
|
#5 id:44825 Posted Apr 2, 2010, 6:06 pm
|
David Haley said:Wait, this is a problem and sending "MSSP-PLAINTEXT" isn't?
I think the potential problem is if you want to do both.
But I'm not sure if this really would be a problem. Even if the characters were treated as garbage, you should just be able to send the "MSSP-REQUEST" on a new line. The crawler would receive some comment like "Illegal name, try another" but that would be before the MSSP data and would therefore be ignored.
I think it would be worth seeing if this really does cause a problem, and if so, just how common it is. It would be really nice if mud clients could initiate negotiation with the mud.
|
......................... KaVir at God Wars II: godwars2.org 3000 Roomless world. Manual combat. Endless possibilities.
|
|
David Haley
Wizard


Group: Members
Posts: 7,783
Joined: Jun 30, 2007
|
#6 id:44826 Posted Apr 2, 2010, 6:11 pm
|
KaVir said:It would be really nice if mud clients could initiate negotiation with the mud.
Is there a strong reason not to? Perhaps we could add this as a "best practice" at MudStandards so that competent clients (i.e. not telnet) can reliably identify themselves by initiating their own negotiation rather than depending on server-initiated negotiation, which has all the issues we've discussed.
|
|
|
Kayle
Wizard


Group: Members
Posts: 1,253
Joined: Nov 27, 2006
|
#7 id:44827 Posted Apr 2, 2010, 6:34 pm
|
Scandum said:I'm quite sure this'll be the case on SmaugFUSS servers. As far as I can predict it'd be a total mess.
I like how you can sling #### without any proof. Especially given that MSSP has been running on MW for as long as the MSSP stuff has been in the FUSS bases, and it uses the plaintext version and no issues have ever arisen. If you have proof to back up your claim that the plain text implementation that we use on SmaugFUSS is going to cause issues, I'm all ears. But if this ends up being another of your rants about how subnegotiation is better, you can kindly keep it to yourself, because I'm sick of your preaching on the subject.
|
......................... Owner/Coder -- Malevolent Whispers -- Development Phase - Not accepting players
Coder -- Star Wars: The Sith Wars -- Open Alpha - Players Welcome - Full System Re-writes Imminent.
FUSS Project Team Lead -- SmaugMuds.Org - The Smaug MUDs Community Center
I3 Contact: Kayle@SithWars
|
|
|
|
KaVir
Wizard


Group: Members
Posts: 2,149
Joined: Jun 19, 2006
|
#9 id:44829 Posted Apr 3, 2010, 3:19 am
|
David Haley said:KaVir said:It would be really nice if mud clients could initiate negotiation with the mud. Is there a strong reason not to? Perhaps we could add this as a "best practice" at MudStandards so that competent clients (i.e. not telnet) can reliably identify themselves by initiating their own negotiation rather than depending on server-initiated negotiation, which has all the issues we've discussed.
Personally I would really like that, but I suspect many client developers would balk at the idea of disrupting the player's experience - if the mud tells you "Illegal name, try another" the first time you connect, it's going to look "buggy" to the player.
I think it's a also server/client developer perspective thing. Zugg might feel that old clients should "die", but suggest the same thing about old muds and I suspect you'd get a very different response.
On the other hand, MUSHclient does allow you to automatically activate MXP, which (as we saw in a previous thread) can disrupt your experience on muds that don't support it. I don't see why this couldn't be handled in a similar way.
Then I could configure a version of MUSHclient and make it available for download from my website, and anyone using it would initiate negotiation when they connected. People using that client to connect to older muds might run into problems, but (1) that's not my concern, and (2) they could still switch the option off. It wouldn't really be much different to Aardwolf providing MUSHclient with Aardwolf-specific plugins pre-enabled.
At the end of the day, someone has to initiate negotiation, and whichever side does it runs the risk of encountering a non-compliant partner.
|
......................... KaVir at God Wars II: godwars2.org 3000 Roomless world. Manual combat. Endless possibilities.
|
|
David Haley
Wizard


Group: Members
Posts: 7,783
Joined: Jun 30, 2007
|
#10 id:44830 Posted Apr 3, 2010, 11:36 am
|
KaVir said:Personally I would really like that, but I suspect many client developers would balk at the idea of disrupting the player's experience - if the mud tells you "Illegal name, try another" the first time you connect, it's going to look "buggy" to the player.
That is a good point. But don't most servers strip out unprintable characters from input? Perhaps that could be a fortuitous accident for us: they'll see the subneg, strip out the unprintable characters, and move on. (Unless of course the negotiation code happens to be a printable character, in which case we're back at square 1.) But: if we made sure that all three characters were unprintable, it might work...
What an utterly nasty problem.
How truly important is it to work around telnet like this? Especially as it's not even installed by default on new Windows OSs...
|
|
|
KaVir
Wizard


Group: Members
Posts: 2,149
Joined: Jun 19, 2006
|
#11 id:44831 Posted Apr 3, 2010, 12:19 pm
|
David Haley said:That is a good point. But don't most servers strip out unprintable characters from input? Perhaps that could be a fortuitous accident for us: they'll see the subneg, strip out the unprintable characters, and move on. (Unless of course the negotiation code happens to be a printable character, in which case we're back at square 1.) But: if we made sure that all three characters were unprintable, it might work...
That could work - I'm pretty sure it would work for Diku derivatives, at least, and I'd be surprised if it didn't work for other muds. It'd be worth testing I think.
Another option might be for the mud to have a specific sequence of escape codes on its login screen to indicate a willingness to accept negotiation, but that seems pretty hacky.
David Haley said:What an utterly nasty problem.
How truly important is it to work around telnet like this? Especially as it's not even installed by default on new Windows OSs...
To be fair, I don't think most muds care about it - its common to switch off echo when entering a password, and that would be a one-way switch for windows telnet.
But I do have a few active players who use it on occasion, so personally I'd rather use a workaround if possible. Fortunately telnet MSSP isn't necessary, as there's the plaintext version - but it could be that future protocols require activation prior to login as well.
|
......................... KaVir at God Wars II: godwars2.org 3000 Roomless world. Manual combat. Endless possibilities.
|
|
|
|
|
|
|
|
|
|