class ClamAV::Commands::InstreamCommand
Public Class Methods
new(io, max_chunk_size = 1024)
click to toggle source
# File lib/clamav/commands/instream_command.rb, line 23 def initialize(io, max_chunk_size = 1024) @io = begin io rescue raise ArgumentError, 'io is required', caller; end @max_chunk_size = max_chunk_size end
Public Instance Methods
call(conn)
click to toggle source
# File lib/clamav/commands/instream_command.rb, line 28 def call(conn) conn.write_request("INSTREAM") while(packet = @io.read(@max_chunk_size)) packet_size = [packet.size].pack("N") conn.raw_write("#{packet_size}#{packet}") end conn.raw_write("\x00\x00\x00\x00") get_status_from_response(conn.read_response) end