Commits on Jun 1, 2011
  1. fully qualify call to erlang:max

    vinoski committed with Apr 13, 2011
  2. update mime.types from recent Apache web server sources

    Also eliminate trailing whitespace in the file.
    vinoski committed with Apr 13, 2011
  3. add binary option to multipart/form-data parsing

    Add optional arguments list and binary (passed as atoms) to specify
    whether the uploaded file data should be returned in list form or
    binary form, respectively. By default
    yaws_multipart:read_multipart_form returns uploaded file data in list
    form to preserve backwards compatibility. But using the binary option
    can result in yaws requiring less memory for handling file uploads.
    The same options can now also be passed to
    vinoski committed with Apr 12, 2011
  4. rewrite multipart/form-data POST handling

    Issue 38 (klacke#38) states that
    POSTing large files crashes Yaws due to out-of-memory (OOM). I found
    that POSTing just a half meg file will drive Yaws to OOM on my 3 GB
    Macbook Pro.
    Rewrite the multipart/form-data handling (which is almost 10 years old
    at this point). Avoid converting the data to lists for processing, and
    avoid processing the data byte-by-byte. Use Boyer-Moore searching to
    find data boundaries, and use erlang:decode_packet to handle part
    Unfortunately binaries are still converted to lists after all
    processing is completed. This is required for backward compatibility,
    but it means a lot of memory still gets used to handle large file
    uploads, even though it's not as much memory as was previously
    vinoski committed with Apr 10, 2011
  5. Adding mime type for WOFF font files.

    Torbjorn Tornkvist committed with Apr 4, 2011
  6. add configurable access logging

    Add the global logger_mod config variable to allow for customized
    access logging. Document logger_mod in yaws.conf.5 and yaws.tex.
    vinoski committed with Apr 3, 2011
Commits on Mar 25, 2011
  1. Got digest auth working in a rudimentary way. It's not properly integ…

    …rated with Yaws yet, but it works.
    committed Mar 25, 2011
Commits on Mar 19, 2011
  1. fix yaws_server dialyzer issues

    In yaws_server the old function ut_open used to return either {bin,
    Bin} or an open file handle depending on how it was called. A number
    of other areas of the yaws_server code also handled either a file
    handle or {bin, Bin}. The ut_open function was changed in June 2002 to
    deal only with binaries, and dialyzer correctly pointed out that a
    number of areas of the code were obsolete as a result. Change
    yaws_server to get rid of ut_read and ut_close, then rename ut_open to
    ut_read and have it just return a plain binary. Remove all vestiges of
    code relying on the old behavior related to open file handles.
    This clears up all known dialyzer issues in yaws_server.
    vinoski committed Mar 19, 2011
Commits on Mar 6, 2011
  1. correction

    klacke committed Mar 6, 2011
Commits on Mar 5, 2011
  1. Some dialyzer fixes - no real bugs, just enhancements, removed the de…

    …precated feature of fdsrv, and fixed some bugs recently introduced by Tobbe and yaws_session_server
    klacke committed Mar 5, 2011
Commits on Mar 4, 2011
  1. compiler warning

    klacke committed Mar 4, 2011
  2. Adding access functions for various Yaws records.

    By adding these access functions for extracting data out from
    some of the Yaws records (e.g the #arg{} record, it is possible
    for other code to avoid having a dependency to any Yaws .hrl files.
    For example: SimpleBridge can now implement its wrappers without
    having to include yaws_api.hrl.
    Torbjorn Tornkvist committed Mar 4, 2011
  3. Figuring out proper yaws_session_server backend.

    This fixes the problem with getting hold of the yaws_session_server
    backend when running in embedded mode. In this mode, no #gconf{}
    record may be available when the yaws_session_server want to figure
    out what backend to use. The fix stores the 'pending' configuration
    as a yaws appplication environment variable 'embedded_conf', which
    makes it possible for the yaws_session_server to get hold of the
    backend when starting up. If still no #gconf{} can be obtained,
    we will fallback to the default yaws_session_server backend.
    Torbjorn Tornkvist committed Mar 4, 2011
  4. Fixing up the start_embedded code.

    Add an explicit check for successfully starting Yaws.
    Adding proper setup of authdirs in start_embedded.
    Torbjorn Tornkvist committed Mar 4, 2011
Commits on Mar 3, 2011
  1. indent

    klacke committed Mar 3, 2011
  2. indendation cleanup

    klacke committed Mar 3, 2011
  3. avoid keeping our own copy of ibrowse

    Remove our copy of ibrowse in our test directory from git
    control. Instead, download ibrowse master from github if we don't have
    a fresh copy. Track master HEAD to make sure we have the latest.
    Change test/Makefile to fetch ibrowse if needed as part of building
    the "all" target.
    Add test/ibrowse to .gitignore.
    vinoski committed Mar 3, 2011
  4. remove support for SOAP DIME attachments

    Remove DIME support. We're cleaning up dialyzer errors in Yaws and the
    DIME code had some problems, so we decided to drop it rather than try
    to fix it since we don't believe anyone's using it. Microsoft has
    dropped support for DIME anyway, recommending MTOM instead.
    vinoski committed Mar 3, 2011
Commits on Mar 2, 2011
  1. do not use ERL_DRV_USE when de-selecting sendfile socket

    The sendfile driver does not own the HTTP sockets to which it sends
    data, and so it never closes them. The previous commit erroneously set
    ERL_DRV_USE on the driver_select(..., 0) call, which causes erts to
    justifiably complain about the driver not implementing the stop_select
    call. Remove ERL_DRV_USE for this case. Thanks to Tuncer Ayaz.
    vinoski committed Mar 2, 2011
  2. fix EINTR handling in sendfile driver

    Tuncer Ayaz pointed out that OS X sendfile will return bytes sent for
    the case when EINTR occurs. Make sendfile driver handle this case by
    treating EINTR the same as EAGAIN for all supported platforms.
    Also update driver to use ERL_DRV_* flags in driver_select calls if
    they're defined, rather than the old DO_* flags. This is considered
    correct practice since R13B.
    vinoski committed Mar 2, 2011
  3. add test target to top-level Makefile

    Add test target to top-level Makefile to allow tests to be built and
    run from that level.
    Also fix the start target in test/support/ to only try to
    start a yaws instance if the current working directory contains a
    yaws.conf file. The lack of this check was preventing half the tests
    from running under "make test".
    vinoski committed Mar 2, 2011
Commits on Mar 1, 2011
  1. comment out unused ssl functions

    Comment out the ssl_fail_if_no_peer_cert functions to eliminate
    warnings about them being unused.
    vinoski committed Mar 1, 2011
  2. fix more dialyzer warnings

    vinoski committed Mar 1, 2011
Commits on Feb 28, 2011
  1. yaws_cgi dialyzer cleanup (thanks to Kostis Sagonas)

    Clean up dialyzer warnings. Make sure fcgi_receive_binary return value
    used consistently everywhere. Comment out code used for
    as-yet-unsupported FCGI features to avoid dialyzer warnings.
    vinoski committed Feb 28, 2011
  2. Use a binary comprehension instead of god old list_to_binary as per s…

    …uggestion from Kostis
    klacke committed Feb 28, 2011