/usr/share/perl5/ClamAV/Config.pm is in libclamav-client-perl 0.11-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | #
# ClamAV::Config class
#
# (C) 2004-2005 Julian Mehnle <julian@mehnle.net>
# $Id: Config.pm,v 1.3 2005/01/21 22:50:14 julian Exp $
#
##############################################################################
=head1 NAME
ClamAV::Config - A Perl class providing configuration information for Perl
modules related to ClamAV
=cut
package ClamAV::Config;
=head1 VERSION
0.11
=cut
our $VERSION = 0.11;
=head1 SYNOPSIS
use ClamAV::Config;
# ClamAV base configuration:
ClamAV::Config->config_dir;
ClamAV::Config->clamd_config_file;
# clamd run-time configuration:
ClamAV::Config->clamd_config;
ClamAV::Config->clamd_option($option);
=cut
use warnings;
use strict;
use Error qw(:try);
use IO::File;
# Private declarations:
##############################################################################
use constant TRUE => (0 == 0);
use constant FALSE => not TRUE;
my $clamd_config;
# Interface:
##############################################################################
=head1 DESCRIPTION
This class provides configuration information for Perl modules related to the
ClamAV virus scanner, e.g. installation specific file system paths and run-time
configuration options.
=cut
sub clamd_option;
# Implementation:
##############################################################################
=head2 ClamAV base configuration
The following ClamAV base configuration information is provided as class
methods:
=over
=item B<config_dir>
The base configuration directory of ClamAV.
=cut
use constant config_dir => '/etc/clamav';
=item B<clamd_config_file>
The absolute file name of the I<clamd> configuration file.
=cut
use constant clamd_config_file => config_dir . '/clamd.conf';
=back
=head2 clamd run-time configuration
The following clamd run-time configuration information is provided as class
methods:
=over
=item B<clamd_config>
Returns all clamd run-time configuration options as a hash reference.
=cut
sub clamd_config {
my ($self) = @_;
return $clamd_config
if $clamd_config;
my $file = IO::File->new($self->clamd_config_file);
if (not $file) {
$clamd_config = {};
throw ClamAV::Config::Error(
'Could not open clamd config file "' . $self->clamd_config_file . '" for reading'
);
}
while (my $line = $file->getline) {
chomp($line);
next if $line =~ /^\s*#/;
if (not $line =~ /^\s*(\w+)(?:\s+(\S+))?\s*$/) {
$clamd_config = {};
throw ClamAV::Config::Error('Malformed line in clamd configuration file encountered');
}
$clamd_config->{$1} = (defined($2) ? $2 : TRUE);
}
return $clamd_config;
}
=item B<clamd_option($option)>
Returns the value of the specified clamd run-time configuration option.
=cut
sub clamd_option {
my ($self, $option) = @_;
return $self->clamd_config->{$option};
}
=back
=head1 SEE ALSO
For AVAILABILITY, SUPPORT, and LICENSE information, see
L<ClamAV::Client>.
=head1 AUTHOR
Julian Mehnle <julian@mehnle.net>
=cut
package ClamAV::Config::Error;
use base qw(Error::Simple);
package ClamAV::Config;
TRUE;
# vim:tw=79
|