Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/concepts/mccp b/doc/concepts/mccp
new file mode 100644
index 0000000..f3e31fb
--- /dev/null
+++ b/doc/concepts/mccp
@@ -0,0 +1,100 @@
+CONCEPT
+ mccp - The Mud Client Compression Protocol
+
+DESCRIPTION
+ Informations and code taken from the MCCP Homepage
+ http://www.randomly.org/projects/MCCP/
+
+ MCCP is implemented as a Telnet option [RFC854, RFC855]. The server
+ and client negotiate the use of MCCP as they would any other telnet
+ option. Once agreement has been reached on the use of the option,
+ option subnegotiation is used to determine acceptable compression
+ methods to use, and to indicate the start of a compressed data stream.
+
+ If the driver is compiled with MCCP Support there is a
+ define __MCCP__.
+
+ The driver currently supports both versions of mccp. If your mud
+ has a H_NOECHO hook you have to find out if the client supports
+ mccp. Without this hook you still have to start neogotiation.
+
+ All sub-negotiation is done by the efuns start_mccp_compress() and
+ end_mccp_compress() whether you have this hook or not.
+
+ Notice: when the client uses compressions all binary_message calls
+ are executed with flag=3. This is because writing to the
+ socket would disturb zlib stream.
+
+ mccp-efuns:
+
+ start_mccp_compress(int telopt) (only needed with H_NOECHO)
+ end_mccp_compress(int telopt) (only needed with H_NOECHO)
+ query_mccp(object player)
+ query_mccp_stats(object player)
+
+ Initiating MCCP without H_NOECHO hook:
+
+ if(!query_mccp()){
+ binary_message(({ IAC, WILL, TELOPT_COMPRESS2 }),1)
+ binary_message(({ IAC, WILL, TELOPT_COMPRESS }),1)
+ }
+
+ the driver will parse the clients answers and start compression.
+ (The connection might already be compressed, because although the
+ documentation says clients should not negotiate from themselfes,
+ zmud e.g. does.)
+
+ You can start and stop compression manually by efuns
+ when you are sure client supports compression :)
+
+
+ Initiating MCCP compression with H_NOECHO hook:
+
+ If your mudlib uses the H_NOECHO driver-hook you decided to do
+ all the negotiation by yourself:
+
+ Server Commands
+ IAC WILL COMPRESS indicates the sender supports version 1 of the
+ protocol, and is willing to compress data it sends.
+
+ IAC WILL COMPRESS2 indicates the sender supports version 2, and is
+ willing to compress data it sends.
+
+ IAC WONT COMPRESS indicates the sender refuses to compress data using
+ version 1.
+
+ IAC WONT COMPRESS2 indicates the sender refuses to compress data
+ using version 2.
+
+ Client Commands
+ IAC DO COMPRESS indicates the sender supports version 1 of the
+ protocol, and is willing to decompress data received.
+
+ IAC DO COMPRESS2 indicates the sender supports version 2 or above,
+ and is willing to decompress data received.
+
+ IAC DONT COMPRESS indicates the sender refuses to support version 1.
+ If compression was previously negotiated and is
+ currently being used, the server should terminate
+ compression.
+
+ IAC DONT COMPRESS2 indicates the sender refuses to support version 2.
+ If compression was previously negotiated and is
+ currently being used, the server should terminate
+ compression
+
+ After you found out whether the client supports mccp or not you can
+ start compression with start_mccp_compress(TELOPT_COMPRESS2) or
+ start_mccp_compress(TELOPT_COMPRESS). ( you could start it without
+ checking but some players would protest :) )
+
+AUTHOR
+ Bastian Hoyer (dafire@ff.mud.de) (some text taken from project page)
+
+HISTORY
+ Added in LDMud 3.3.447, backported to LDMud 3.2.10.
+
+SEE ALSO
+ start_mccp_compress(E), end_mccp_compress(E), query_mccp(E),
+ query_mccp_stats(object player)
+