NAME
Catalyst::Plugin::ClamAV - ClamAV scanning Plugin for Catalyst
SYNOPSIS
use
Catalyst;
MyApp->setup(
qw/ ClamAV /
);
# configuration for using unix domain socket
MyApp->config->{clamav} = {
socket_name
=>
'/var/sock/clam'
,
};
# configuration for using TCP/IP socket
MyApp->config->{clamav} = {
socket_host
=>
'127.0.0.1'
,
socket_port
=>
'3310'
,
};
# Virus scan upload files.
my
$found
=
$c
->clamscan(
'field1'
,
'field2'
);
my
@found_virus
=
$c
->clamscan(
'field1'
,
'field2'
);
# e.g. @found_virus == ( { name => 'field1', signature => 'VIRUSNAME' } );
DESCRIPTION
This plugin add virus scan method (using ClamAV) for Catalyst.
Using ClamAV::Client module.
CONFIGURATION
MyApp->config->{clamav}->{socket_name};
# UNIX domain socket
MyApp->config->{clamav}->{socket_host};
# TCP/IP host
MyApp->config->{clamav}->{socket_port};
# TCP/IP port
See ClamAV::Client POD.
METHODS
- clamscan
-
Scan uploaded file handles, using ClamAV::Client->scan_stream(). Takes file upload field names as arguments.
HTML:
<form action=
"/upload"
method=
"post"
enctype=
"multipart/form-data"
>
<input type=
"file"
name=
"field1"
>
<input type=
"file"
name=
"field2"
>
</form>
Controller:
$found
=
$c
->clamscan(
'field1'
,
'field2'
);
The number of found viruses is returned. If clamd is stopping ( $scanner->ping failed ), -1 returned.
To get found virus detail,
@found_virus
=
$c
->clamscan(
'field1'
,
'field2'
);
@found_virus is list of hash ref ( e.g. { name => 'fieldname', signature => 'virusname' } ).
SEE ALSO
AUTHOR
FUJIWARA Shunichiro, <fujiwara@topicmaker.com>
COPYRIGHT AND LICENSE
Copyright (C) 2005 by FUJIWARA Shunichiro.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available.