about summary refs log tree commit homepage
path: root/lib/rainbows/http_server.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-12-28 01:14:43 +0000
committerEric Wong <normalperson@yhbt.net>2010-12-28 01:34:49 +0000
commit46d79be0ad3de48ef0a677537becb3508ccad31e (patch)
treed04ae95b99c7bee6a1e72fb050685403bcdc4a5d /lib/rainbows/http_server.rb
parentef66567984780b2ce8daa155c367bcf7e049ab77 (diff)
downloadrainbows-46d79be0ad3de48ef0a677537becb3508ccad31e.tar.gz
This will allow servers to limit the number of keepalive
requests that can be made over a single connection to
prevent denial-of-service and also to improve fairness
in load-balancing.
Diffstat (limited to 'lib/rainbows/http_server.rb')
-rw-r--r--lib/rainbows/http_server.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/rainbows/http_server.rb b/lib/rainbows/http_server.rb
index d02af72..906fa0a 100644
--- a/lib/rainbows/http_server.rb
+++ b/lib/rainbows/http_server.rb
@@ -90,10 +90,16 @@ class Rainbows::HttpServer < Unicorn::HttpServer
 
   def keepalive_timeout(nr)
     (Integer === nr && nr >= 0) or
-      raise ArgumentError, "keepalive must be a non-negative Integer"
+      raise ArgumentError, "keepalive_timeout must be a non-negative Integer"
     G.kato = nr
   end
 
+  def keepalive_requests(nr)
+    Integer === nr or
+      raise ArgumentError, "keepalive_requests must be a non-negative Integer"
+    Unicorn::HttpRequest.keepalive_requests = nr
+  end
+
   def client_max_body_size(nr)
     err = "client_max_body_size must be nil or a non-negative Integer"
     case nr