do_data (Net::SFTP::Operations::Read)

    # File lib/net/sftp/operations/read.rb, line 51
        def do_data( data )
          @log.debug "[#{@id}] got #{data.length} bytes" if @log.debug?

          @data << data
          @progress_callback[@data] if @progress_callback

          if @length < 0 || @data.length < @length
            if @length < 0
              length = @chunk_size
            else
              length = @length - @data.length
              length = length > @chunk_size ? @chunk_size : length
            end

            @log.debug "[#{@id}] requesting #{length} more bytes" if @log.debug?
            @driver.read @id, @handle, @offset + @data.length, length
            @session.register( @id, self )
          else
            @callback[ OK, @data ]
          end
        end