Adds support for MCCP v2
(http://mccp.afkmud.com/protocol.html)
MUD clients supporting MCCP v2 (directly, or via a
proxy) can take advantage of server-output compression,
which can provide substantial bandwidth savings at the
cost of slightly higher CPU usage.
The server can announce support for MCCP at login (or
later), although this feature is not provided in the
patch, since the patch has not been extensively tested,
and telnet-noncompliant MUD clients may print the
option negotiation as garbage.
Instead, this patch provides a new "mccp" command that
announces support for MCCP.
Also provides statistics. Example:
>385/385 14/36 6352> mccp
MCCP compression is ON.
KB processed: 14.6
KB sent: 3.0
Compression ratio: 20%
Logged In: YES
user_id=213305
Note: server memory footprint is about 256k per MCCP-enabled
connection, but can be reduced at the cost of compression
efficiency.
Logged In: YES
user_id=213305
This version fixes the existing
telnet-negotiation-on-connect and adds compress2 support,
and uses the proper telnet names and such.
Could break non-telnet-compliant clients!
Logged In: YES
user_id=213305
Best revision as of 15 Jan 2004. Enabled by typing "mccp"
(no automatic telopt negotiation.)
File is: mccp_manual.patch
Logged In: YES
user_id=471778
Looks okay, but is there a way we can do this so that we don't force
everyone to install the Compress::Zlib module if they don't care about
this functionality? I'm a little hesitant to require another module for the
program to run.
Logged In: YES
user_id=213305
This update includes some ugly code to detect if
Compress::Zlib is installed and automatically use it. Well,
not all that ugly, considering that this is Perl. But still.
File is: mccp_ugly.patch
Logged In: YES
user_id=213305
Fixed a problem related to kill_all_sockets.
Successfully tested MCCP with:
ZMud (Windows)
SimpleMU (Windows)
ROAClient (Windows)
MUSHClient (Windows)
mcclient proxy (Windows, Linux)
kmuddy (Linux)
crystal (Linux)
Also patched and tested successfully on a fresh CVS copy (23
Jan) of RS2, with and without Compress::Zlib installed on
the system.
Should be safe to install by now.
Players can try to enable it by typing "mccp", which results in:
Clients that support MCCP will enable compression and the
server will send a message saying that compression has been
enabled.
Clients that support telnet and don't support MCCP, should
print nothing.
Clients that ignore telnet negotiation but strip
non-printable characters will see "V".
A small minority of clients will display two garbage
characters followed by a "V".
File: mccp_tested.patch
MCCP, Zlib detection, no known bugs