about summary refs log tree commit homepage
diff options
authorEric Wong <normalperson@yhbt.net>2009-10-07 01:37:52 -0700
committerEric Wong <normalperson@yhbt.net>2009-10-07 01:37:52 -0700
commit8bf9006d5d7cf15706a362d301ef4d75254e855c (patch)
parente825dd70a7e4a10f0dfba10610fd9d58a7b8e694 (diff)
Avoid truncated POST bodies from with URL-encoded forms in Rails
by switching TeeInput to use read-in-full semantics (only) when
a Content-Length: header exists.  Chunked request bodies
continue to exhibit readpartial semantics to support
simultaneous bidirectional chunking.

The lack of return value checking in Rails to protect against a
short ios.read(length) is entirely reasonable even if not
pedantically correct.  Most ios.read(length) implementations
return the full amount requested except right before EOF.

Also there are some minor documentation improvements.

Eric Wong (7):
      Fix NEWS generation on single-paragraph tag messages
      Include GPLv2 in docs
      doc: make it clear contributors retain copyrights
      TODO: removed Rainbows! (see rainbows.rubyforge.org)
      Document the START_CTX hash contents
      more-compatible TeeInput#read for POSTs with Content-Length
      tests for read-in-full vs readpartial semantics
2 files changed, 2 insertions, 2 deletions
index 7a2ebc4..1956c61 100755
@@ -1,7 +1,7 @@
diff --git a/lib/unicorn/const.rb b/lib/unicorn/const.rb
index 98f1a26..76a41b4 100644
--- a/lib/unicorn/const.rb
+++ b/lib/unicorn/const.rb
@@ -7,7 +7,7 @@ module Unicorn
   # gave about a 3% to 10% performance improvement over using the strings directly.
   # Symbols did not really improve things much compared to constants.
   module Const
-    UNICORN_VERSION="0.93.1"
+    UNICORN_VERSION="0.93.2"
     DEFAULT_HOST = "" # default TCP listen host address
     DEFAULT_PORT = 8080      # default TCP listen port