Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Jul 10, 2014

  1. Christopher Faulet

    Remove support of wildcards for R15B03 and previous

    A bug in filelib:wildcard/1,2 was fixed in R16B:
      erlang/otp@70b5e24
    
    So, wildcard strings in the configuration file are now forbidden for older
    releases.
    capflam authored
  2. Christopher Faulet

    Add the Travis build status in Readme.md

    capflam authored
  3. Christopher Faulet

    Add support of wildcards and relative paths to load sub-config files.

    Now, subconfig and subconfigdir targets accept relative paths, searched
    relatively to the configuration location. So for the configuration
    "/etc/yaws/yaws.conf", all relative files and directories will be searched from
    "/etc/yaws". Of course, absolute paths are always supported.
    
    furthermore, the subconfig target can take Unix-style wildcard strings to
    include several files at once. See filelib:wildcard/1 for details.
    
    Last, hidden files, starting by a dot, will be ignored in any cases.
    capflam authored
  4. Christopher Faulet

    Check #deflate.min_compress_size option for large files

    Now large files are compressed only if their size is greater than
    the #deflate.min_compress_size option.
    capflam authored
  5. Christopher Faulet

    Relax rules that allow the parsing of a query string or an urlencoded…

    … body
    
    The parsing of a query string or an urlencoded body was allowed, respectively,
    for 'GET' or 'POST' requests. Now, this can be done for any kind of requests. Of
    course, a body is parsed only if its Content-Type is set to
    'x-www-form-urlencoded'.
    
    In the same way, a body can now be parsed as a multipart content if its
    Content-Type is set to 'multipart/form-data', regardless of the request type.
    
    As a consequence of these changes, yaws_api:getvar/2 now returns the merged
    result of values found in the query string and in the urlencoded body (if any).
    capflam authored

Jul 07, 2014

  1. Christopher Faulet

    Keep the original request during an internal redirection

    capflam authored
  2. Christopher Faulet

    Add systemd service script and fix other init scripts

    Other changes:
     * Replace README by README.md
     * Add travis configuration
     * Fix testsuite and dependencies detection
    capflam authored
  3. Christopher Faulet

    Handle a bug in unicode module in releases R14B04 and previous

    The code points 16#FFFE and 16#FFFF (not assigned but valid) are considered as
    invalid in releases R14B04 and previous. So for these releases, the websockets
    testsuite always failed. This commit worked around the bug.
    
    It was fixed in OTP with the commit 34db767655:
       erlang/otp@34db767
    capflam authored
  4. Christopher Faulet

    Add yaws:hup/0 to allow Yaws reloads from another erlang module

    capflam authored
  5. Christopher Faulet

    Do not set recbuf by default on listening sockets

    This patch removes a bug I experienced on FreeBSD during tests on the loopback
    interface because of its MTU. So, I don't really know why that happens on
    FreeBSD and not on Linux, but because loopback MTU is greater than the recbuf
    value (16K on loopback vs 8k in Yaws), if a client sends data, Yaws will read
    them very slowly.
    
    Furthermore, there is no good reason to tweak this value by default. And, if
    required, it is always possible to configure it.
    capflam authored
  6. Christopher Faulet

    Fix a backward compatibility bug with inet:parse_strict_address/1

    inet:parse_strict_address/1 was introduced in R16. For previous releases, we
    need to rely on inet_parse:ipv4strict_address/1 and
    inet_parse:ipv6strict_address/1 functions.
    capflam authored
  7. Christopher Faulet

    Massive autotools refactoring & cleanup

    Now, all makefile are generated by automake. This way, many things are more
    configurable and maintainable.
    
    Main (visible) changes:
    
     * Now, you can configure and compile Yaws outside the source directory. It is
       also possible to generate an archive for distribution, using the 'dist' target
       (from now, 'distcheck' target should always pass).
    
     * We track .erl dependencies using '-M*' flags of ERLC.
    
     * generated header 'yaws_configure.hrl' disappears. HAVE_SENDFILE,
       HAVE_ERLANG_SENDFILE and HAVE_CRYPTO_HASH macros are defined in ERLC flags.
    
     * yaws_generated:localinstall/0 function disappears (see comment about local
       install).
    
     * To create a windows installer, we just need to run the 'mkinstaller'
       target. Read win32/README.developer for details.
    
     * We use standard Erlang installation path for Yaws, relative to the erlang
       library directory (/usr/lib/erlang/lib). Now, '$(libdir)/yaws' is a link. We
       do the same for yapp application.
    
     * "local install" was removed. Now, to do a "developer install", we just need
       to set a prefix during the project configuration using --prefix option. So,
       you need to install yaws to test it.
    
     * DESTDIR variable is still supported.
    
     * scripts/make-release was rewritten to use 'dist' and 'mkinstaller' targets.
    
     * Installation of Yaws applications has slightly changed. Now they are
       installed in their own directory, in '$(localstatedir)/yaws'. So, chat
       application will be installed in '$(localstatedir)/yaws/chat', with 'www' and
       'ebin' subdirs.
    
    Main targets (others than all/install/clean....):
    
      * all           : compile Yaws
      * debug         : compile Yaws with debug flags
      * clean         : remove files produced by all or debug target
      * install       : do a proper install of Yaws
      * doc or docs   : build the documentation
      * check or test : launch tests
      * cleantest     : remove files produced by check target
      * dialyzer      : run dialyzer on Yaws
      * mkinstaller   : build an installer for windows
      * cleaninstaller: remove files produced by mkinstaller target
      * apps          : compile Yaws applications (chat,mail,wiki,yapp)
      * cleanapps     : remove files produced by apps target
      * installapps   : install Yaws applications
      * fullinstall   : install + installapps
      * fullclean     : clean + cleantest + cleanapps + cleaninstaller
    
      To install an application, run: (cd application/{APP} && make install)
    
    Of course, many things can be customized during configuration and Rebar still
    works as expected. To do an install with (almost) the same tree than with
    previous of Yaws, do:
    
      $> ./configure yawsdir=${prefix}/lib/yaws yappdir=${prefix}/lib/yapp \
            --sysconfdir=/etc --localstatedir=/var
      $> make install
    
    Here is the default installation tree on my debian:
    
       usr
        ├── lib
        │   └── erlang
        │       └── lib
        │           ├── yapp-0.4.2
        │           │   ├── doc/
        │           │   ├── ebin/
        │           │   ├── examples/
        │           │   └── priv/docroot/
        │           └── yaws-1.98
        │               ├── ebin/
        │               ├── include/
        │               └── priv/
        │               ├── examples/
        │
        ├── local/bin/yaws
        │
        ├── local/etc/init.d/yaws
        ├── local/etc/yaws/
        ├── local/etc/mail/yaws-webmail.conf
        │
        ├── local/lib/pkgconfig/yaws.pc
        ├── local/lib/yapp -> /usr/lib/erlang/lib/yapp-0.4.2
        ├── local/lib/yaws -> /usr/lib/erlang/lib/yaws-1.98
        │
        ├── local/share/doc/yaws/yaws.pdf
        ├── local/share/man/{man1,man5}/
        │
        ├── local/var/log/yaws
        ├── local/var/run/yaws
        └── local/var/yaws
            ├── chat/{ebin,www}
            ├── mail/{ebin,www}
            ├── wiki/{ebin,www}
            └── www
    capflam authored

May 27, 2014

  1. Steve Vinoski

    update known dialyzer warnings

    vinoski authored

May 20, 2014

  1. Steve Vinoski

    convert non-ASCII characters in json2 decoding

    Non-ASCII characters in JSON strings are now decoded to UTF-8.
    vinoski authored

Apr 29, 2014

  1. Steve Vinoski

    fix broken rebar build

    In commit cb49390 I broke the ability for yaws to be used as a rebar
    dependency for other projects. Move src/yaws.app.src.in back to
    src/yaws.app.src. Move the code in rebar.config.script to
    src/yaws.app.src.script file to process the app dependencies for
    src/yaws.app.src. Change src/Makefile to process app dependencies when
    creating ebin/yaws.app.
    vinoski authored

Apr 22, 2014

  1. Steve Vinoski

    Merge pull request #176 from richcarl/remove-vsn-attributes

    remove -vsn attributes to ensure the MD5 sum is used for all modules
    vinoski authored
  2. remove -vsn attributes to ensure the MD5 sum is used for all modules

    Richard Carlsson authored

Apr 16, 2014

  1. Steve Vinoski

    Merge pull request #175 from yakaz/fcgi-ipv6

    IPv6 address parsing + IPv6 lookup for FastCGI and reverse proxy
    vinoski authored

Apr 15, 2014

  1. Jean-Sébastien Pédron

    Add a nslookup_pref global parameter

    This parameter allows to change the name resolution and connection
    preference for fcgi servers and revproxy URLs. It takes a list of the
    form [inet | inet6].
    
    For instance, to perform only IPv4 resolution:
        nslookup_pref = [inet]
    
    To perform both IPv4 and IPv6, but try IPv6 first:
        nslookup_pref = [inet6, inet]
    
    The default value is [inet]. Therefore, the behavior remains the same
    with this addition.
    
    This parameter is used by two new functions:
        o  yaws:tcp_connect/{3,4}
        o  yaws:ssl_connect/{3,4}
    
    They are wrappers around gen_tcp:connect/{3,4} and ssl:connect/{3,4} and
    take care of connection retries for each configured family.
    dumbbell authored
  2. Jean-Sébastien Pédron

    Accept an IPv6 between "[...]" as an fcgi server hostname

    Here are some examples:
        php_handler = <fcgi, [::1]:9000>
        fcgi_app_server = [::1]:9000
    
    The square brackets syntax is already used in URLs (http://[::1]:8080/)
    and allows to mix an IPv6 address and a port number.
    
    While here, fix a bug in revproxy URL parsing where IPv6 between
    brackets were considered as a syntax error.
    dumbbell authored

Apr 14, 2014

  1. Steve Vinoski

    Merge pull request #174 from yakaz/install-freebsd

    scripts/Install: Create ${etcdir}/rc.d on FreeBSD
    vinoski authored
  2. Jean-Sébastien Pédron

    scripts/Install: Create ${etcdir}/rc.d on FreeBSD

    If Yaws is installed in a non-standard directory, we must create
    ${etcdir}/rc.d before copying the init script there.
    dumbbell authored

Apr 13, 2014

  1. Steve Vinoski

    update priv/mime.types from Apache

    vinoski authored

Apr 12, 2014

  1. Steve Vinoski

    allow a cleanup pid with replace_cookie_session

    Add yaws_api:replace_cookie_session/3 and
    yaws_session_server:replace_session/3 to allow the user to pass a cleanup
    pid in order to associate a new cleanup process with the replacement
    session. Thanks to Patrick Moy for suggesting this.
    vinoski authored

Apr 11, 2014

  1. Steve Vinoski

    allow extra app dependencies for yaws.app to be configured

    Yaws can depend on crypto for random numbers and hashes, and on the
    compiler for .yaws pages. But the default yaws.app file specifies only
    kernel and stdlib as application dependencies, since not all Yaws
    deployments use crypto or compiler. Still, if a Yaws system uses crypto and
    compiler without including them in the yaws.app file, building and
    deploying an Erlang/OTP release for that system will fail.
    
    Add --enable-crypto and --enable-compiler options to the configure script
    to allow the user to add either or both of these applications to the
    yaws.app file. Specifying the --enable-crypto option also causes the Yaws
    startup code to start the crypto application; likewise for
    --enable-compiler and the compiler application.
    
    For rebar builds, enhance rebar.config.script to generate the same files
    the configure script generates for any extra app dependencies. Setting the
    YAWS_APPDEPS environment variable to a space- or comma-separated list of
    addition applications to add to yaws.app, e.g.
    
    YAWS_APPDEPS='crypto compiler'
    
    causes rebar to add those apps to the generated yaws.app file and ensure
    they're started before Yaws started.
    vinoski authored

Apr 02, 2014

  1. Steve Vinoski

    dialyzer maintenance

    Fix known dialyzer warnings. Also change Makefile dialyzer rule to make it
    easier to see pass/fail results.
    vinoski authored

Mar 27, 2014

  1. Steve Vinoski

    remove unused -DDYNAMIC_DRIVER from c_src/Makefile

    Thanks to Richard Carlsson for pointing out this unused option.
    vinoski authored

Mar 25, 2014

  1. Steve Vinoski

    add check for YAWS_DISABLE_PAM to rebar.config.script

    Setting the OS environment variable YAWS_DISABLE_PAM to any value causes
    rebar builds to avoid building pam. This is equivalent to using the
    --disable-pam option with configure, and is useful for building in
    environments where pam development files are not available.
    vinoski authored
  2. Steve Vinoski

    add .rebar dir to .gitignore

    vinoski authored

Mar 20, 2014

  1. Steve Vinoski

    fix #173: set ibrowse dep to v3.0.4 in rebar.config

    Set ibrowse dependency to version 3.0.4 to match what test/Makefile
    selects. Later versions do not work so well on OS X Mavericks.
    vinoski authored

Mar 14, 2014

  1. Steve Vinoski

    fix #172: make yaws_ticker handle EXIT messages correctly

    The yaws_ticker processes were not cleaned up due to an incorrect EXIT
    message receive spec. Thanks to Nico Kruber for reporting the problem, and
    for supplying a new regression test case which is now in the test/eunit
    directory.
    vinoski authored

Mar 12, 2014

  1. Steve Vinoski

    add virtual server redirect conf example to redirect.yaws

    vinoski authored
  2. Steve Vinoski

    change "rscheme" to "rmethod" in the docs

    vinoski authored

Mar 10, 2014

  1. Steve Vinoski

    handle filename encodings properly in dir listings

    vinoski authored

Feb 26, 2014

  1. Christopher Faulet

    Adjust line numbers in known_dialyzer_warnings file

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