Menu

#1 MCCP compression support

open
nobody
None
2
2005-01-19
2005-01-13
Ensign Yu
No

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%

Discussion

  • Ensign Yu

    Ensign Yu - 2005-01-13

    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.

     
  • Ensign Yu

    Ensign Yu - 2005-01-13

    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!

     
  • Ensign Yu

    Ensign Yu - 2005-01-15

    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

     
  • Tyler Goen

    Tyler Goen - 2005-01-19
    • priority: 5 --> 2
     
  • Tyler Goen

    Tyler Goen - 2005-01-19

    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.

     
  • Ensign Yu

    Ensign Yu - 2005-01-19

    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

     
  • Ensign Yu

    Ensign Yu - 2005-01-23

    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

     
  • Ensign Yu

    Ensign Yu - 2005-01-23

    MCCP, Zlib detection, no known bugs

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.