about summary refs log tree commit homepage
path: root/t/preread_input.ru
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-10-08 23:44:23 +0000
committerEric Wong <normalperson@yhbt.net>2010-10-09 00:03:02 +0000
commit6eb46e422f4b2ba98c795fca5e18e7262c0c688e (patch)
tree805e041099199ce7e4154283b3e7b81d9485159d /t/preread_input.ru
parent9be78606355d4a0ad4ea59316ab2ce998c5b9a12 (diff)
downloadunicorn-6eb46e422f4b2ba98c795fca5e18e7262c0c688e.tar.gz
This may be useful for some apps that wish to drain the body
before acquiring an app-wide lock.  Maybe it's more useful
with Rainbows!...
Diffstat (limited to 't/preread_input.ru')
-rw-r--r--t/preread_input.ru17
1 files changed, 17 insertions, 0 deletions
diff --git a/t/preread_input.ru b/t/preread_input.ru
new file mode 100644
index 0000000..79685c4
--- /dev/null
+++ b/t/preread_input.ru
@@ -0,0 +1,17 @@
+#\-E none
+require 'digest/sha1'
+require 'unicorn/preread_input'
+use Rack::ContentLength
+use Rack::ContentType, "text/plain"
+use Unicorn::PrereadInput
+nr = 0
+run lambda { |env|
+  $stderr.write "app dispatch: #{nr += 1}\n"
+  input = env["rack.input"]
+  dig = Digest::SHA1.new
+  while buf = input.read(16384)
+    dig.update(buf)
+  end
+
+  [ 200, {}, [ "#{dig.hexdigest}\n" ] ]
+}