Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Oct 2, 2012
  1. @capflam @vinoski

    Fix SSL socket wrapping

    capflam authored vinoski committed
    We must be careful when we rely on Arg#arg.clisock in Yaws modules
    because the socket is wrapped in case of SSL connections.
    
    Thanks to Jean-Charles Campagne.
Commits on Jul 10, 2012
  1. @vinoski

    wrap SSL sockets in tuple

    vinoski authored
    Yaws previously internally used details of an SSL socket representation
    that's supposed to be private/opaque to Erlang's SSL support. Encapsulate
    SSL sockets within a {ssl, SslSocket} tuple and add the
    yaws_api:get_sslsocket/1 function that returns a socket for SSL sockets or
    undefined for non-SSL sockets. Also document the new get_sslsocket/1
    function and other minor tweaks to SSL areas of the documentation.
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 2, 2012
  1. @vinoski

    fix websockets reply status codes for client close messages

    vinoski authored
    A number of autobahn WebSockets tests were failing due to replies
    containing incorrect status codes. Check client status codes and reply with
    correct codes.
  2. @vinoski

    refactor yaws_websockets as a gen_server

    vinoski authored
    The yaws_websockets module used an explicit recursive loop. Refactor it to
    use a gen_server instead.
Commits on Apr 22, 2012
  1. @vinoski

    add callback for abnormal websocket close

    vinoski authored
    If a websocket client closes the connection abnormally, issue a callback to
    the application callback module indicating the closure.
Commits on Feb 12, 2012
  1. @vinoski

    add close callback for websockets

    vinoski authored
    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. @vinoski

    minor cleanup

    vinoski authored
Commits on Dec 18, 2011
  1. @jbothma @vinoski

    update WebSockets implementation to support RFC 6455

    jbothma authored vinoski committed
    This change allows websocket connections to be set up between browsers
    and the yaws server. RFC 6455 for WebSocket connections is supported,
    in addition to the hybi working group RFC drafts 10 to 17.
    
    The quickest way to try this out is by compiling yaws as usual, then
    visiting /websockets_example.yaws at the default local installation
    host. This can be done using Google Chrome 14+, Firefox 7+ or any
    other browser supporting WebSocket version 8 or above. Information
    about getting started with WebSockets using this implementation is
    given in /websockets.yaws.
    
    This drops support for the older draft RFCs, specifically those of the
    hixie working group which were previously supported by yaws but are
    significantly different from the hybi working group's specification.
    
    The interface for using WebSocket with yaws has changed
    somewhat. Instead of spawning a websocket owner process which
    maintains a server loop such as that shown in the old
    websockets_endpoint.yaws, the application developer now implements a
    callback module such as those in src/basic_echo_callback.erl or
    src/advanced_echo_callback.erl -- the difference being that the
    advanced callback style is only necessary if you need advanced
    features of WebSocket such as fragmented messages. One suggested way
    to deploy your callback module and its dependencies is as part of an
    application in an OTP release, with yaws as a dependency. Rebar can be
    used to build the dependencies, fetch and build yaws, and create a
    release which will ensure the modules are in the path of the runtime
    system.
    
    Most behaviour tested by the Autobahn test suite 0.43 pass when
    configured to connect to the /websockets_autobahn_endpoint.yaws and
    /websockets_example_endpoint.yaws over an unencrypted
    connection. Significantly, websocket connection closing is not
    implemented and the socket is left to be cleaned up by the Runtime
    System when either the connection is lost or the owning processes
    dies. Secondly, certain cases where websocket frames are fragmented
    within UTF-8 code points cause the check for valid text type messages
    to incorrectly fail the connection.
    
    Subprotocols are not currently supported.
    
    Augment yaws.tex with a new WebSocket Protocol chapter (Steve
    Vinoski).
Commits on Apr 20, 2011
  1. @vinoski

    major trailing whitespace cleanup

    vinoski authored
    Remove trailing whitespace in all .erl and .hrl files in the
    repository.
    
    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)
                              (delete-trailing-whitespace))))
Commits on Mar 3, 2011
  1. indendation cleanup

    authored
Commits on Oct 24, 2010
  1. @danw @vinoski

    fix SSL Websocket support (Dan Willemsen)

    danw authored vinoski committed
    fixed a case where a gen_tcp call was erroneously being used on an SSL
    socket
Commits on Sep 1, 2010
  1. @vinoski

    for portability, use erlang:md5 rather than crypto md5

    vinoski authored
    Since OpenSSL availability on Windows for working with the crypto
    module is apparently questionable, use the erlang:md5 function in
    place of the crypto md5 functions.
Commits on Aug 28, 2010
  1. @vinoski

    minor code cleanup

    vinoski authored
Commits on Aug 27, 2010
  1. @schemeway
  2. @schemeway
Commits on Jan 12, 2010
  1. no utf8 in the author name

    authored
Commits on Dec 18, 2009
  1. @davide

    Get the websocket return value to enforce #outh{doclose=false} using …

    davide authored
    …the {connection, erase} header.
  2. @davide

    HTML5 Web Sockets support.

    davide authored
Something went wrong with that request. Please try again.