note IPv4 or IPv6 as appropriate in munin statistics (Olivier Girondel)
cosmetic comment and whitespace cleanup in yaws_api.hrl
Update www/websockets.yaws
Merge pull request #104 from abs/patch-1

Update www/websockets.yaws
add callback for abnormal websocket close

If a websocket client closes the connection abnormally, issue a callback to
the application callback module indicating the closure.
fix misspelled call to yaws_api:headers_transfer_encoding
dialyzer fixes and comments
fix broken change to yaws_trace.erl from previous commit (thanks Kostis Sagonas)
fix compilation error in previous commit (thanks again Kostis)
change dialyzer Makefile targets to handle known warnings

At the suggestion of Tuncer Ayaz, modify the dialyzer targets to use the
new known_dialyzer_warnings file to ignore all known dialyzer warnings.
add rebar dependencies needed for SOAP applications

Use rebar.config.script to dynamically add SOAP dependencies if the shell
environment variable YAWS_SOAP is set. This way, Yaws users not interested
in SOAP do not need these dependencies.
make handling of cookie names case insensitive

According to RFC 2109, handling of cookie names is specified as being case
insensitive.

Also, add a couple cookie unit tests. More are needed though.
cosmetic comment and whitespace cleanup in yaws.hrl
Fix syntax and layout errors in yaws.conf.5
Make the target test dependent on the target all

So, when we run 'make test', Yaws sources are recompiled, if needed.
Update yaws.tex to have the same description of the config file...

...than in the manpage yaws.conf.5
Add options to configure deflate compression behaviour

By adding "<deflate> ... </deflate>" structure in vhosts configuration,
it is possible to configure how deflate compression will be applied
and when it will come into effect. Now we can:

 * define the smallest response size that will be compressed
 * define the compression level to be used
 * specify the zlib compression window size
 * specify how much memory should be allocated for the internal
   compression state
 * choose the strategy used to tune the compression algorithm

All these parameters are used when a zlib stream is initialized for
compression.

It is also possible to define all compressible mime types.
Here is an example:

<server localhost>
  ...
  deflate = true
  <deflate>
    min_compress_size = 4096
    compression_level = best_compression
    mime_types        = defaults, image/*
    mime_types        = application/xml, application/xhtml+xml, application/rss+xml
    mem_level         = 9
    strategy          = default
    window_size       = 15
  </deflate>
  ...
</server>
Check the Content-Length before reading the request's content

Some browsers, like Firefox, do not support files that are larger than 2GB.
Uploading a >2GB file causes an integer overflow and the Content-Length
header is set to a negative value.

To prevent any crash in this case, we check the Content-Length value before
reading the request's content. When the value is negative, an error 400 is
returned.

A bug about this problem is openned for Firefox:
    - https://bugzilla.mozilla.org/show_bug.cgi?id=215450
Fix bugs in yaws_api:parse_multipart_post/1,2 for chunked requests

For chunked requests, when several parts are parsed, only the first one was
processed properly. For the others, all the content of each part was needed
to be parsed. So when an huge file was uploaded, this bug could lead to a
memory exhaustion.

Note: Now, yaws_api:parse_multipart_post/1,2 can return '{error, Reason}'
if an error occurred during the parsing.
fix yaws issue #103: fix yapp exclude_dir paths (Mikael Karlsson)