Compression for the masses. (see note)

From: George (greerga@circlemud.org)
Date: 02/17/99


Second release of MCL-compatible (testing with it) compression support.

http://www.circlemud.org/~greerga/zlib2.patch

This version is much (much) more memory friendly, isn't as much of a design
abomination, and actually doesn't get confused when the output is full.
Anyway, this should be stable now.  Let me know if you find it not to be.
I suspect that the write resumption support may not mesh well with the
compression code but I've yet to be able to generate enough text so that I
get a process write would block message.  11kb of test compressed to 96
characters generally doesn't bode well for making it block.

Anyway, on the downside, this will still botch any IAC request except the
one we expect.  It doesn't check that the client can actually do it either.
On the upside, it's currently only available by the hidden menu option '6'.
Future revisions will only turn on compression if the client says it can
and the user has a flag that says they desire it.  Also on the list of
things to do is to correctly handle turning off the compression without
being disconnected.

NOTE: This code should also work with the 'mcclient' code by Oliver Jowett
<icecube@ihug.co.nz>.  With that program you can use any client you want
(even telnet) and get compressed connections.  If you're interested in it,
check out http://homepages.ihug.co.nz/~icecube/compress/

I was getting text compressed to 2.2% of its original size during my
somewhat contrived test where I was trying to spam my connection into a
blocked write. (loaded objects 3000 - 3040, 10+ times over, and 'look')

--
George Greer
greerga@circlemud.org
http://www.van.m-l.org/CircleMUD/OasisOLC/


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST