about summary refs log tree commit homepage
path: root/lib/rainbows/revactor
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-11-11 22:09:03 -0800
committerEric Wong <normalperson@yhbt.net>2009-11-11 22:11:26 -0800
commit4d5a366f386e0f8a0b667e3071a6c027ae560fdd (patch)
tree3e638f6594e249dd03569cfda1404262e90fca2e /lib/rainbows/revactor
parent0f68fbf889568ee38828301f403b7284bac2b63a (diff)
downloadrainbows-4d5a366f386e0f8a0b667e3071a6c027ae560fdd.tar.gz
We're doomed if the client socket EOFs on us while we're reading
it.  So don't hide it and let the exception bubble all the way
up the stack.
Diffstat (limited to 'lib/rainbows/revactor')
-rw-r--r--lib/rainbows/revactor/tee_input.rb17
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/rainbows/revactor/tee_input.rb b/lib/rainbows/revactor/tee_input.rb
index b8042ad..b34931f 100644
--- a/lib/rainbows/revactor/tee_input.rb
+++ b/lib/rainbows/revactor/tee_input.rb
@@ -21,17 +21,14 @@ module Rainbows
       # returns nil if reading from the input returns nil
       def tee(length, dst)
         unless parser.body_eof?
-          begin
-            if parser.filter_body(dst, buf << socket.read).nil?
-              @tmp.write(dst)
-              diff = dst.size - length
-              if diff > 0
-                dst.replace(dst[0,length])
-                @tmp.seek(-diff, IO::SEEK_CUR)
-              end
-              return dst
+          if parser.filter_body(dst, buf << socket.read).nil?
+            @tmp.write(dst)
+            diff = dst.size - length
+            if diff > 0
+              dst.replace(dst[0,length])
+              @tmp.seek(-diff, IO::SEEK_CUR)
             end
-          rescue EOFError
+            return dst
           end
         end
         finalize_input