I'm implementing a MSDP parser for a mud client and have noticed some odd behavior 'in the wild'. I've used the specification listed here for my implementation: http://tintin.sourceforge.net/msdp/.
The mud I've been testing this on is Realms of Despair. Here's an example of what I am seeing.
MDSP is enabled via telnet negotiation. I send the following after MSDP support is established:
Now according to the specification this is a bogus response. The intent is obviously to return an array of lists available. But it is using this multiple MSDP_VAL shorthand in sort of an implied array syntax. According to the specification I would expect the following response:
Where <5> and <6> correspond with MSDP_ARRAY_OPEN and MSDP_ARRAY_CLOSE respectively.
I can account for this case of course on my end but I am wondering the following:
Am I using the correct specification?
Is this a case of de facto support being different from the specification? I.e.; should I expect this on all MUDs supporting MSDP or is this a RoD anamoly.
If there is in fact a de facto standard being used what is defining it? Would it be Kavir's protocol snippet and I should use that as the source of truth?
It was a point of contention. If the mud is using my snippet you can retrieve the SNIPPET_VERSION MSDP variable to check which version they're using, 3+ supports tables and arrays (RoD has removed the variable, but I believe they're still using version 1).
27 Jun, 2013, bozimmerman wrote in the 5th comment:
Votes: 0
Les, what client were you working on? I could sure use an MSDP test client right now…
The mud I've been testing this on is Realms of Despair. Here's an example of what I am seeing.
MDSP is enabled via telnet negotiation. I send the following after MSDP support is established:
RoD sends this in response:
Now according to the specification this is a bogus response. The intent is obviously to return an array of lists available. But it is using this multiple MSDP_VAL shorthand in sort of an implied array syntax. According to the specification I would expect the following response:
Where <5> and <6> correspond with MSDP_ARRAY_OPEN and MSDP_ARRAY_CLOSE respectively.
I can account for this case of course on my end but I am wondering the following: