##
Clam daemon

`clamd` is a multi-threaded daemon that uses libclamav to scan files for viruses. It may work in one or both modes listening on:

- Unix (local) socket
- TCP socket

The daemon is fully configurable via the `clamd.conf` file 7. `clamd` recognizes the following commands:

- PING
  Check the daemon's state (should reply with "PONG").
- VERSION
  Print program and database versions.
- RELOAD
  Reload the databases.
- SHUTDOWN
  Perform a clean exit.
- SCAN file/directory
  Scan file or directory (recursively) with archive support enabled (a full path is required).
- RAWSCAN file/directory
  Scan file or directory (recursively) with archive and special file support disabled (a full path is required).
- CONTSCAN file/directory
  Scan file or directory (recursively) with archive support enabled and don't stop the scanning when a virus is found.
- MULTISCAN file/directory
  Scan file in a standard way or scan directory (recursively) using multiple threads (to make the scanning faster on SMP machines).
- STREAM
  Scan stream: `clamd` will return a new port number you should connect to and send data to scan.
- SESSION, END
  Start/end a `clamd` session - you can do multiple commands per TCP session (WARNING: due to the `clamd` implementation the RELOAD command will break the session).

and reacts on the special signals:

- SIGTERM - perform a clean exit
- SIGHUP - reopen the log file
- SIGUSR2 - reload the database