Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Sep 18, 2012
  1. @capflam

    Parse extensions and trailing headers of chunked transfer encoded req…

    capflam authored
    Chunk extensions and trailing headers are parsed but ignored in requests
    and are not supported in responses. It is a strange feature of the RFC-2619
    and would be hard to implement. Moreover, this feature is rarely supported
    by clients and servers and even less used.
    So, without any concrete use-case, no further work will be done on this
  2. @capflam
Commits on Jun 21, 2012
  1. @vinoski

    add reverse proxy intercept module capability

    vinoski authored
    Users can now specify an interception module that can rewrite requests and
    responses as they pass through the Yaws reverse proxy. See the
    documentation for details (yaws.conf.5 man page or the yaws.pdf file).
    Also add new set_header, get_header, and delete_header functions to the
    yaws_api module to allow intercept modules and arg rewriters to more easily
    examine and modify #headers{} records.
    Add new tests for the new header manipulation functions and for the reverse
    proxy interception feature.
Commits on Jun 11, 2012
  1. @capflam @vinoski

    Handle non-chunked responses without content-length in yaws_revproxy

    capflam authored vinoski committed
    In that case, the revproxy must read until the backend closes.
    Add a test for this new functionality
  2. @capflam @vinoski

    Refactor yaws_revproxy when large non-chunked content is received

    capflam authored vinoski committed
    Fix: srvconn_status must not be set to keep-alive
    Refactoring: prepare the handling of non-chunked responses with no
  3. @capflam @vinoski

    Fix conditions to close the backend socket when an error occurs

    capflam authored vinoski committed
    We must close the socket when an error _OTHER_THAN_ 'closed' occurs.
  4. @vinoski

    handle large non-chunked content in yaws_revproxy

    vinoski authored
    Use partial_post_size as a block size to handle large non-chunked content
    from backend servers in yaws_revproxy. Read the content block by block,
    returning each block to the client as it arrives. This avoids having to
    read the entire backend response into memory before replying to the
    client. Add a test for this new functionality and fix .gitignore to ignore
    the new content file used for the test.
Commits on May 12, 2012
  1. @vinoski

    add new HTTP status codes from RFC 6585

    vinoski authored
    RFC 6585 added new HTTP status codes, so add them here.
    Also change the code that limits the number of incoming headers to return
    new status code 431 (Request Header Fields Too Large).
Commits on Apr 22, 2012
  1. @vinoski

    dialyzer fixes and comments

    vinoski authored
Commits on Feb 28, 2012
  1. @capflam
Commits on Feb 24, 2012
  1. @capflam

    Add the revproxy testsuite

    capflam authored
Commits on Feb 21, 2012
  1. @capflam

    Refactor the reverse proxy to manage it as a "special" appmod

    capflam authored
    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.
Commits on Dec 21, 2011
  1. @vinoski

    handle long HTTP header lines in R15B

    vinoski authored
    R15B includes a fix for receiving HTTP request and header lines longer
    than Erlang's internal TCP buffer size of 1460 bytes. In the future we
    might have to allow this limit to be configurable, but for now
    hard-code a maximum HTTP header line size of 16384 bytes.
    This will have no effect for Erlang releases older than R15B.
Commits on Apr 20, 2011
  1. @vinoski

    major trailing whitespace cleanup

    vinoski authored
    Remove trailing whitespace in all .erl and .hrl files in the
    If you're an emacs user, you can easily see trailing whitespace using
    settings like these in your ~/.emacs file:
    (setq-default show-trailing-whitespace t)
    (set-face-background 'trailing-whitespace "slate gray")
    You can also delete trailing whitespace automatically when you save
    your Erlang sources by setting the emacs before-save-hook in your
    ~/.emacs file like this:
    (add-hook 'before-save-hook
              '(lambda () (if (eq major-mode 'erlang-mode)
Commits on Mar 3, 2011
  1. indendation cleanup

Commits on May 20, 2010
  1. @vinoski

    allow leading slash on revproxy prefix

    vinoski authored
    Trying to "mount" a remote site underneath a path other than "/" under
    our docroot with a revproxy was hitting function clause errors in
    yaws_revproxy.erl. Change the strip_prefix function there to properly
    handle prefixes with leading slashes.
Commits on Mar 30, 2009
Commits on May 29, 2008
Commits on May 15, 2008
Commits on May 12, 2008
  1. Major general code cleanup, finally got rid of all the export_all sta…

    …tements and in that process removed a bit of code that wasn't used
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on May 7, 2008
Commits on Mar 10, 2008
  1. Several cleanups due to dialyzer, also moved the control file into us…

    …ers HOME directory so that we don't have the problem of writing in /var when we're running as non-root
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Feb 14, 2008
  1. untabified all of yaws

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Aug 21, 2007
  1. revproxy bug found by igor goryachev

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Mar 9, 2006
  1. removed the ability change userid, also stopped writing to /tmp/yaws …

    …and started to write to /home/klacke/.yaws instead. This is much better since we cannot now ever get into the situations where file ownership and umask stop us from controlling a daemon. Also cleaned up the start flags to the yaws script, all old flags are still there for backward scompatibilty.
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Feb 7, 2006
  1. broken revproxy

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Nov 20, 2005
  1. ""

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Aug 17, 2005
  1. ""

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Aug 15, 2005
  1. ""

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
  2. rewrote yaws SSL code to use the packet http and packet line modes th…

    …at are now supported in the OTP ssl module. Earlier this was all manual (and slow) code in yaws. Thus yaws/SSL servers are now considerably faster
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Apr 12, 2005
  1. better looking debug printouts + dont overwrite trace_to_tty (-x comm…

    …andline) if set on the commandline and ind the config file, commandline should have precedense
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Apr 10, 2005
  1. @mremond

    By default proxy is not keep-alived

    mremond authored
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
  2. @mremond

    Fixed yaws_proxy bugs (client request was sent twice, Cookie header w…

    mremond authored
    …as always added, tuple use as PID). I still need to do some refactoring
    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Commits on Feb 7, 2005
Commits on Jun 18, 2004
  1. ""

    git-svn-id: 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52
Something went wrong with that request. Please try again.