class HTTPClient::Session

def read_body_chunked(&block)

def read_body_chunked(&block)
  buf = empty_bin_str
  while true
    len = @socket.gets(RS)
    if len.nil? # EOF
      close
      return
    end
    @chunk_length = len.hex
    if @chunk_length == 0
      @content_length = 0
      @socket.gets(RS)
      return
    end
    timeout(@receive_timeout, ReceiveTimeoutError) do
      @socket.read(@chunk_length, buf)
      @socket.read(2)
    end
    unless buf.empty?
      yield buf
    end
  end
end