Skip to content

mrraj-zz/clamd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clamd

Ruby client to interact with ClamAV daemon

Installation

Add this line to your application's Gemfile:

gem 'clamd'

And then execute:

$ bundle

Install clamd directly

$ gem install clamd

Configuration

Clamd by default connects to 9321 port in localhost. You can also configure the host, port, open_timeout(seconds), read_timeout(seconds) and chunk_size(bytes). Refer the following code to configure Clamd.

Client.configure do |config|
  config.host = 'localhost'
  config.port = 9321
  config.open_timeout = 5
  config.read_timeout = 20
  config.chunk_size = 102400
end

Usage

@clamd = Clamd::Client.new

PING

@clamd.ping
=>"PONG"

RELOAD

@clamd.reload
=>"RELOADING"

SHUTDOWN

@clamd.shutdown
=> true

SCAN

@clamd.scan("/file/path")
=>"/file/path: OK"

CONTSCAN

@clamd.contscan("/file/path")
=>"/file/path: OK"

MULTISCAN

@clamd.multiscan("/file/path")
=>"/file/path: OK"

INSTREAM

@clamd.instream("/file/path/to/stream/to/clamd")
=>"stream: OK"

STATS

@clamd.stats
=> "POOLS: 1STATE: VALID PRIMARYTHREADS: live 1  idle 0 max 12 idle-timeout 30QUEUE: 0 items"

VERSION

@clamd.version
=> "ClamAV 0.97.8/18237/Sat Dec 14 11:13:16 2013"

Connecting multiple ClamdAV daemon

You can also connect to multiple ClamdAV daemon running on different machine at the same time.

@clamd1 = Clamd::Client.new(host: '192.16.20.11', port: 9321)
@clamd2 = Clamd::Client.new(host: '172.16.50.21', port: 8321)

@clamd1.ping
=> "PONG"

@clamd2.ping
=> "PONG"

License

Clamd is released under the MIT License.

Code Status

Gem Version Code Climate

Test

Run spec

rspec spec/

About

Ruby gem to interact with Clamd daemon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published