Rainbows! 5.2.1
[rainbows.git] / lib / rainbows / http_parser.rb
blobbcf1dbac6b5129ba1a10bc4bb395eb2bb45e73ad
1 # -*- encoding: binary -*-
2 # :enddoc:
3 # avoid modifying Unicorn::HttpParser
4 class Rainbows::HttpParser < Unicorn::HttpParser
5   @keepalive_requests = 100
6   class << self
7     attr_accessor :keepalive_requests
8   end
10   def initialize(*args)
11     @keepalive_requests = self.class.keepalive_requests
12     super
13   end
15   def next?
16     return false if (@keepalive_requests -= 1) <= 0
17     super
18   end
20   def hijack_setup(io)
21     @hijack_io = io
22     env['rack.hijack'] = self # avoid allocating a new proc this way
23   end
25   def call # for rack.hijack
26     env['rack.hijack_io'] = @hijack_io
27   end
29   def self.quit
30     alias_method :next?, :never!
31   end
33   def never!
34     false
35   end
36 end