Class: Thin::DeferredRequest
- Inherits:
-
Request
- Object
- Request
- Thin::DeferredRequest
- Defined in:
- lib/htttee/server/ext/thin/deferred_request.rb
Instance Method Summary collapse
Instance Method Details
#env ⇒ Object
27 28 29 |
# File 'lib/htttee/server/ext/thin/deferred_request.rb', line 27 def env super.merge(RACK_INPUT => body) end |
#parse(data) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/htttee/server/ext/thin/deferred_request.rb', line 3 def parse(data) if @parser.finished? # Header finished, can only be some more body body << data else # Parse more header using the super parser @data << data raise InvalidRequest, 'Header longer than allowed' if @data.size > MAX_HEADER @nparsed = @parser.execute(@env, @data, @nparsed) if @parser.finished? return super(data) unless @env['HTTP_TRANSFER_ENCODING'] == 'chunked' _, initial_body = @data.split("\r\n\r\n") initial_body ||= '' @body = DeferrableBody.new(initial_body) return true # trigger the rack call chain end end return false # only trigger the rack call chain once, just after the headers are parsed end |