summary refs log tree commit
DateCommit message (Collapse)
2009-12-24add "rack.io" to Mongrel request rack.io
2009-12-24Rack::Lint understands "rack.io" env
2009-12-22Use Content-Type to determine POST params parsing [#20]
Reverts the hard test for a 'PUT' request method (8d01dc0) and uses the Content-Type to determine whether to read into the request body. The Request#POST method parses the request body if (and only if) either of the following conditions are met: 1. The request's Content-Type is application/x-www-form-urlencoded or multipart/form-data. Note: the REQUEST_METHOD is ignored in this case. 2. The original REQUEST_METHOD is 'POST' and no Content-Type header was specified in the request. Note that we use the REQUEST_METHOD value before any modifications by the MethodOverride middleware. This is very similar to how this worked prior to 8d01dc0 but narrows the 'no Content-Type' special case to apply only to POST requests. A PUT request with no Content-Type header would trigger parsing before - with this change only POST requests with no Content-Type trigger parsing.
2009-12-20Status code lookup utility
2009-12-20Extract parse_query and parse_multipart in Request so subclasses
can change their behavior [#71 state:resolved]
2009-12-20Request#host knows about forwared host [#77 state:resolved]
2009-12-20Request#user_agent
2009-12-20exclude rackup tests by default because they often stall
2009-12-20Mention fix-root-scriptname in KNOWN-ISSUES
2009-12-20Merge branch 'master' of github.com:rack/rack
2009-12-11ignore rackup log output
2009-12-11NullLogger should actually be a middleware
2009-12-11Simple rack logger middleware that wraps rack.errors
2009-12-11Nop NullLogger
2009-12-11rack.logger specification
2009-12-11Import Ryan's Sendfile from contrib into core
2009-12-11Import runtime middleware by paul (Paul Sadauskas) into core
2009-12-11Import etag middleware from contrib into core
2009-12-11Import Config by jcrosby (Jon Crosby) into core
2009-12-10Reverse hash for looking up status codes by symbol
2009-12-10HeaderHash#each yields Lint-OK multivalue headers
Rack::Lint does not allow header values yielded by #each to be non-String objects, so we join them like we do in #to_hash. This finally allows HeaderHash to be passed in the Rack response as a header without needing #to_hash. Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-12-10CommonLogger uses HeaderHash to lookup Content-Length
Since HeaderHash is cheaper to use now, encourage its usage instead of reinventing a way to lookup header values with an enforced O(n) overhead. Under best conditions, this can now be done in O(1) time if the rest of our middleware stack already uses (and passes) HeaderHash. This does make things slower if CommonLogger is the only middleware in the stack, however that's probably not too common. Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-12-10avoid HeaderHash#to_hash in middlewares
Since HeaderHash objects are valid header responses, avoid converting the headers to Hash objects only to have it reconverted back to HeaderHash in the next middleware. Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-12-10HeaderHash.new avoids unnecessary object creation
Creating a new HeaderHash is an O(n) operation in addition to the cost of allocating a new object. When using multiple pieces of middleware, this can lead to unnecessary memory allocation and iteration overhead. We now explicitly define the HeaderHash.new class method to return its original argument if it is already a HeaderHash to avoid repeating work. Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-12-10Fixed multipart parameter parsing for when a field's body ends at the same ↵
time as a chunk (i.e. we've reached EOL and buffer is empty)
2009-12-10Introduce failing test case for multipart parser when it slices exactly on a ↵
boundary and patch multipart parser so it passes it - the failing test case comes with a sample payload specific to the fact that the default bufsize used by the multipart parser is exactly 16384. should this default be changed, the test will no longer apply.
2009-12-10Tell people to report bugs to lighthouse
2009-12-10Don't delete PATH_INFO from env in fastcgi, mongrel, and webrick
handlers because PATH_INFO must not be nil according to SPEC [#75 state:resolved]
2009-12-03Merge branch 'memcache-session-bugfix'
* memcache-session-bugfix: Test-fix for shallow copy change checks Added test for deep hash checks, prevent shallow copy check failure Session::Memcache fixes Updating Session::Memcache test Inlining of #merge_sessions
2009-12-03Test-fix for shallow copy change checks
Simplification of new/missing session keys
2009-12-03Added test for deep hash checks, prevent shallow copy check failure
Rewording variables for clarity
2009-12-02Session::Memcache fixes
Restructing logical branches to be less inlince Uniform naming of variables Fix of of inline session merging
2009-12-02Updating Session::Memcache test
Pointless instantiation removed Moved bad connection check above good connection check A blank string for the server specification uses defaults, fixed
2009-12-02Inlining of #merge_sessions
2009-12-02Merge branch 'quoted-string-cookies'
* quoted-string-cookies: Test added to check to ensure that quoted values are properly parsed
2009-12-02Test added to check to ensure that quoted values are properly parsed
Using a regular expression to identify quoted string values, could be optimized
2009-12-02Fix typo on lib/rack/session/pool.rb
2009-12-02Added mime type for .manifest (HTML5 offline storage)
2009-12-02Response should call #to_i on the status, as per the spec.
"The status, if parsed as integer (to_i), must be greater than or equal to 100."
2009-11-23Extract the option parser
Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-11-22Initial removal of OpenID related files
Removal of references in Rakefile and the core include
2009-11-21Refactor rackup into Rack::Server
Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-11-21Test coverage for rackup
Signed-off-by: Joshua Peek <josh@joshpeek.com>
2009-11-21Merge branch 'master' of github.com:rack/rack
2009-11-10Update README for 1.0.1
2009-10-23Fix LSWS handler as suggested by George Wang
2009-10-18Update README for 1.0.1
2009-10-18Merge branch 'master' of github.com:rack/rack
2009-10-18Fixes the handling of the filename parameter.
Uses the RE used by Ruby in cgi.rb, that handles the embedded semicolons in the filename correctly. Signed-off-by: Christian Neukirchen <chneukirchen@gmail.com>
2009-10-18Test multipart upload with a semicolon in the name.
Test a multipart upload in which the specified filename includes a semicolon. Should be parsed with the included filename, but Rack stops at the filename. Signed-off-by: Christian Neukirchen <chneukirchen@gmail.com>