Commits on Feb 24, 2012
  1. Add the revproxy testsuite

    capflam committed Feb 24, 2012
Commits on Feb 21, 2012
  1. Refactor the reverse proxy to manage it as a "special" appmod

    capflam committed Feb 21, 2012
    Now, the reverse proxy is written like an appmod and follows the same
    workflow. We forge the #urltype{} record and use Arg#arg.state to pass
    the revproxy's rule before calling yaws_revproxy:out/1.
    For now, the support of persistent connections with the backend servers
    is disabled. But it does not affect the status of client connections.
    Chunked-transfer encoded requests and responses are supported.
    Despite this refactoring, yaws_revproxy is always experimental and need
    more tests to be safely used in production environments.
  2. Manage all 'special' headers of #headers{} and #outh{} records

    capflam committed Feb 21, 2012
    Some headers, like 'Content-Encoding' or 'Transfer-Encoding' were
    not correctly handled. These changes can be useful for everyone who
    writes yaws scripts or appmods. In particular, the next version of
    the reverse proxy depends on it.
Commits on Feb 17, 2012
  1. clean up rebar build problems with examples/src

    vinoski committed Feb 17, 2012
    Clean up some duplicate options and extra whitespace in
    examples/src/Makefile, and add examples/src to rebar.config to make
    sure it gets built under rebar.
Commits on Feb 15, 2012
  1. Fix issue #88

    capflam committed Feb 15, 2012
    2 changes here:
     * Revert "Flush remaining data when dynamic content is delivered"
    This reverts commit d09ed3d.
    Systematically flushing data is not a good idea.
     * Add "flush" as possible return value of the out/1 function
    Some clients (eg. Firefox and google-chome...) do not handle connection
    close gracefully when the connection is closed during sending data; they
    do not read the server response. So, when the response is important, to
    warn the end-user that an error occured for example, we must be fair by
    flushing data before closing the connection.
Commits on Feb 13, 2012
  1. Fixed issue 87

    klacke committed Feb 13, 2012
Commits on Feb 12, 2012
  1. add close callback for websockets

    vinoski committed Feb 10, 2012
    WebSocket clients can close their end of the connection, and RFC 6455
    requires servers to handle that message appropriately. This change
    adds a new callback message for basic WebSocket callback modules. The
    server now also replies to client "close" messages with a "close"
    reply, as RFC 6455 requires. WebSockets documentation updated as well.
    Also included a message ordering fix from Jan Bothma.
Commits on Feb 10, 2012
  1. minor cleanup

    vinoski committed Feb 10, 2012
Commits on Feb 2, 2012
  1. Allow the server signature to be defined per virtual server

    capflam committed Feb 2, 2012
    Now, we can use the 'server_signature' directive into the server part
    to overload the global one for specific virtual server.
Commits on Jan 24, 2012
Commits on Jan 23, 2012
  1. rotate log file regardless of copy_errlog parameter

    garret-smith committed Dec 7, 2011
    Signed-off-by: Garret Smith <>
  2. fix log rotation on Windows, where fsync() is required to get the act…

    garret-smith committed Dec 7, 2011
    …ual file size
    Signed-off-by: Garret Smith <>
Commits on Jan 20, 2012
  1. Simplify excl_sys_filters

    tuncer committed Jan 20, 2012
Commits on Jan 18, 2012
  1. fixed wiki app XSS vulnerabilities

    sgolovan authored and vinoski committed Jan 16, 2012
    In applications/wiki/src/wiki.erl,
    applications/wiki/src/wiki_to_html.erl: Fixed CVE-2011-5025 (multiple
    cross-site scripting (XSS) vulnerabilities in the wiki) by accepting
    only letters and digits in node names, guarding a few calls to
    list_to_integer/1, and escaping all HTML which goes to a user's
  2. R15B compatibility fixes

    sgolovan authored and vinoski committed Jan 16, 2012
    In applications/mail/src/mail.erl, applications/mail/src/smtp.erl,
    applications/wiki/src/utils.erl, applications/wiki/src/wiki.erl,
    applications/wiki/src/wiki_yaws.erl: Fixed compatibility with Erlang
    R15B. Replaced atom/1, list/1, integer/1 by is_atom/1, is_list/1,
    is_integer/1 and erlang:fault/1 by erlang:error/1. In the wiki app,
    replaced regexp module by re one, renamed error/1 by html_error/1 to
    avoid clashing with global error/1 function.
  3. fix syntax and spelling errors in man pages

    sgolovan authored and vinoski committed Jan 16, 2012
    In man/yaws.conf.5, man/yaws_api.5: Fixed a few syntax and spelling
    errors in manpages.
  4. handle parseable but invalid ctlfile

    sgolovan authored and vinoski committed Jan 16, 2012
    src/yaws_ctl.erl: Process the case when ctlfile is parseable but its
    content is invalid.
  5. fixes for make clean in applications and doc dirs

    sgolovan authored and vinoski committed Jan 16, 2012
    * applications/wiki/scripts/Makefile: Remove all scripts on make
    * applications/yapp/Makefile: Remove forgotten PNG image on make
    * doc/Makefile: Remove generated www/ and www/yaws.pdf on
      make clean.
Commits on Jan 9, 2012
  1. Merge remote-tracking branch 'capflam/trace_improvements'

    klacke committed Jan 9, 2012
  2. Merge pull request #80 from richcarl/fix-some-warnings

    klacke committed Jan 9, 2012
    fixed warnings about unused imports and export_all
  3. Merge pull request #79 from richcarl/check-host-undefined

    klacke committed Jan 9, 2012
    check for Host = undefined in pick_host()
  4. Set default output headers when a rewrite response is returned

    capflam committed Jan 6, 2012
    Because a response can be returned by the module used to rewrite arg records,
    we must take care to set default output headers like 'date' and 'server'.
    When the response has a content, if the content type is not defined, then
    we set it to "text/plain".
  5. Allow gconf keepalive_timeout to be set to infinity

    capflam committed Jan 9, 2012
    The manpage of yaws.conf says that 'infinity' is a legal but not recommended
    value for keepalive_timeout. But it was not really supported.
  6. Use gconf keepalive_timeout when the SSL connection is established

    capflam committed Jan 9, 2012
    If a client open an SSL connection on Yaws without starting the SSL
    negotiation phase, the server hangs until the client closes the connection.
    By using a timeout during the call to ssl_accept, we solve this problem.
Commits on Jan 6, 2012