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