class WEBrick::HTTPRequest

def read_chunked(socket, block)

def read_chunked(socket, block)
  chunk_size, = read_chunk_size(socket)
  while chunk_size > 0
    begin
      sz = [ chunk_size, @buffer_size ].min
      data = read_data(socket, sz) # read chunk-data
      if data.nil? || data.bytesize != sz
        raise HTTPStatus::BadRequest, "bad chunk data size."
      end
      block.call(data)
    end while (chunk_size -= sz) > 0
    line = read_line(socket)              # skip CRLF
    unless line == "\r\n"
      raise HTTPStatus::BadRequest, "extra data after chunk '#{line}'."
    end
    chunk_size, = read_chunk_size(socket)
  end
  read_header(socket)                    # trailer + CRLF
  @header.delete("transfer-encoding")
  @remaining_size = 0
end