Skip to content

pedrogarrett/clamd

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clamd

Ruby client to interact with ClamAV daemon

Gem Version Code Climate Travis

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.

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

Languages

  • Ruby 100.0%