about summary refs log tree commit homepage
path: root/Manifest
DateCommit message (Collapse)
2009-07-01Remove cat-chunk-proxy, curl CVS supports non-blocking stdin
Now that upstream curl supports this functionality, there's no reason to duplicate it here as an example.
2009-06-30Add trailer_parser for parsing trailers
Eventually this (and ChunkedReader) may be done in C/Ragel along with the existing HttpParser.
2009-06-06Put copyright text in new files, include GPL2 text
Just clarifying the license terms of the new code. Other files should really have this notice in there as well.
2009-06-06Unicorn::App::Inetd: reinventing Unix, poorly :)
This includes an example of tunneling the git protocol inside a TE:chunked HTTP request. The example is unfortunately contrived in that it relies on the custom examples/cat-chunk-proxy.rb script in the client. My initial wish was to have a generic tool like curl(1) operate like this: cat > ~/bin/cat-chunk-proxy.sh <<EOF #!/bin/sh exec curl -sfNT- http://$1:$2/ EOF chmod +x ~/bin/cat-chunk-proxy.sh GIT_PROXY_COMMAND=cat-chunk-proxy.sh git clone git://0:8080/foo Unfortunately, curl will attempt a blocking read on stdin before reading the TCP socket; causing the git-clone consumer to starve. This does not appear to be a problem with the new server code for handling chunked requests.
2009-06-05Transfer-Encoding: chunked streaming input support
This adds support for handling POST/PUT request bodies sent with chunked transfer encodings ("Transfer-Encoding: chunked"). Attention has been paid to ensure that a client cannot OOM us by sending an extremely large chunk. This implementation is pure Ruby as the Ragel-based implementation in rfuzz didn't offer a streaming interface. It should be reasonably close to RFC-compliant but please test it in an attempt to break it. The more interesting part is the ability to stream data to the hosted Rack application as it is being transferred to the server. This can be done regardless if the input is chunked or not, enabling the streaming of POST/PUT bodies can allow the hosted Rack application to process input as it receives it. See examples/echo.ru for an example echo server over HTTP. Enabling streaming also allows Rack applications to support upload progress monitoring previously supported by Mongrel handlers. Since Rack specifies that the input needs to be rewindable, this input is written to a temporary file (a la tee(1)) as it is streamed to the application the first time. Subsequent rewinded reads will read from the temporary file instead of the socket. Streaming input to the application is disabled by default since applications may not necessarily read the entire input body before returning. Since this is a completely new feature we've never seen in any Ruby HTTP application server before, we're taking the safe route by leaving it disabled by default. Enabling this can only be done globally by changing the Unicorn HttpRequest::DEFAULTS hash: Unicorn::HttpRequest::DEFAULTS["unicorn.stream_input"] = true Similarly, a Rack application can check if streaming input is enabled by checking the value of the "unicorn.stream_input" key in the environment hashed passed to it. All of this code has only been lightly tested and test coverage is lacking at the moment. [1] - http://tools.ietf.org/html/rfc2616#section-3.6.1
2009-05-26remove trickletest from Manifest
2009-05-04Preserve 1.9 IO encodings in reopen_logs
Ensure we preserve both internal and external encodings when reopening logs.
2009-05-02Add TUNING document
Most of this should be applicable to Mongrel and other web servers, too.
2009-04-21rename socket.rb => socket_helper.rb
We no longer have anything outside of SocketHelper module in that file, so just give it a more obvious name.
2009-04-16update Manifest (add test_signals.rb)
2009-04-02unicorn 0.4.2 v0.4.2
2009-04-01Manifest: updates
2009-04-01Manifest update
2009-03-25Socket: add {snd,rcv}buf opts to bind_listen
bind_listen takes a hash as its second parameter now, allowing the addition of :sndbuf and :rcvbuf options to specify the size of the buffers in bytes. These correspond to the SO_SNDBUF and SO_RCVBUF options via setsockopt(2) respectively. This also adds support for per-listener backlogs to be used. However, this is only an internal API change and the changes have not yet been exposed to the user via Unicorn::Configurator, yet. Also add a bunch of SocketHelper tests
2009-03-21HttpRequest test so our requests pass Rack::Lint
This test requires Rack to be loaded and will not run without it. This also seems broken on 1.9 still with Rack 0.9.1...
2009-03-20Add Unicorn::App::ExecCgi
This is a Rack handler that passes Rack::Lint running cgit and so it has been lightly tested. No other CGI executables have been run with it.
2009-03-19start libifying common launcher code
The daemonization logic between unicorn and unicorn_rails scripts can definitely be shared. Again: our daemonization logic is slightly non-standard since our executables are designed to run in APP_ROOT/RAILS_ROOT and not "/" like "normal" UNIX daemons.
2009-03-18unicorn v0.2.1, fix the Manifest v0.2.1
2009-03-09Remove sinatra example
It is no longer relevant (or working) with rackup compatibility.
2009-03-09Remove COPYING, it is redundant with LICENSE
The LICENSE file is pretty much the same text, so there's no point in having both files other than making the licensing terms ambiguous. COPYING only specifies "GPL" while LICENSE specifies "GPL2" specifically.
2009-03-03unicorn/http11: hopefully fix gem installation
Also, update the Manifest
2009-03-03Add Unicorn::Util for a reopen_logs method
Since I use it myself and also in the tests, we might as well implement it correctly as a class method so people can run it in their trap('USR2') hooks.
2009-02-25rename http11 => unicorn/http11
Avoid conflicting with existing (and future) Mongrel installs in case either changes. Of course, this also allows us more freedom to experiment and break the API if needed... However, I'm only planning on making minor changes to remove the amount of C code we have to maintain and possibly some minor performance improvements.
2009-02-23Update Manifest
2009-02-10Update Manifest
Add a make task for updating it, too.
2009-02-09Remove test/ files we don't care about, update Manifest
We're not using them and they don't seem useful in any shape or form...
2009-02-09Remove threading and use worker processes instead
All tests for threading and semaphores have been removed. One test was changed because it depended on a shared variable. Tests will be replaced with tests to do process management instead.
2009-02-09s/Mongrel/Unicorn/g
Avoid conflicting with existing Mongrel libraries since we'll be incompatible and break things w/o disrupting Mongrel installations.
2009-02-09Remove Java and Win32 support
Supporting corporate enterprise platforms isn't my style :P Signed-off-by: Eric Wong <normalperson@yhbt.net>
2009-01-31New manifest.
2008-03-31A bunch of corrections to the Rakefiles and the Manifest.
Almost nirvana for CI. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/branches/stable_1-2@1001 19e92222-5c0b-0410-8929-a290d50e31e9
2008-02-20Update manifest for changed test layout; add CONTRIBUTORS file to the RDoc ↵
pattern in the Rakefile. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/branches/stable_1-1@975 19e92222-5c0b-0410-8929-a290d50e31e9
2007-11-01manifest; jruby test removed
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@864 19e92222-5c0b-0410-8929-a290d50e31e9
2007-11-01add TODO
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@854 19e92222-5c0b-0410-8929-a290d50e31e9
2007-10-31Mongrel::Gems helper to deal with Rubygems and ActiveSupport infighting
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@852 19e92222-5c0b-0410-8929-a290d50e31e9
2007-10-27manifest
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@787 19e92222-5c0b-0410-8929-a290d50e31e9
2007-10-26manifest
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@755 19e92222-5c0b-0410-8929-a290d50e31e9
2007-10-22update manifest
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@731 19e92222-5c0b-0410-8929-a290d50e31e9
2007-09-25fix manifest, fix ignore pattern
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@630 19e92222-5c0b-0410-8929-a290d50e31e9
2007-09-24remove irrelevant files from the manifest
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@610 19e92222-5c0b-0410-8929-a290d50e31e9
2007-09-23signed mongrel gem
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@607 19e92222-5c0b-0410-8929-a290d50e31e9