This file is indexed.

/usr/share/perl5/Qpsmtpd/Constants.pm is in qpsmtpd 0.84-11.

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
package Qpsmtpd::Constants;
use strict;
require Exporter;

# log levels
my %log_levels = (
	LOGDEBUG   => 7,
	LOGINFO    => 6,
	LOGNOTICE  => 5,
	LOGWARN    => 4,
	LOGERROR   => 3,
	LOGCRIT    => 2,
	LOGALERT   => 1,
	LOGEMERG   => 0,
	LOGRADAR   => 0,
);

# return codes
my %return_codes = (
	OK                     => 900,
	DENY                   => 901,   # 550
	DENYSOFT               => 902,   # 450
	DENYHARD               => 903,   # 550 + disconnect  (deprecated in 0.29)
	DENY_DISCONNECT        => 903,   # 550 + disconnect
	DENYSOFT_DISCONNECT    => 904,   # 450 + disconnect
	DECLINED               => 909,
	DONE                   => 910,
	CONTINUATION           => 911,   # deprecated - use YIELD
	YIELD                  => 911,
);

use vars qw(@ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = (keys(%return_codes), keys(%log_levels), "return_code", "log_level");

foreach (keys %return_codes ) {
    eval "use constant $_ => ".$return_codes{$_};
}

foreach (keys %log_levels ) {
    eval "use constant $_ => ".$log_levels{$_};
}

sub return_code {
    my $test = shift;
    if ( $test =~ /^\d+$/ ) { # need to return the textural form
	foreach ( keys %return_codes ) {
	    return $_ if $return_codes{$_} =~ /$test/;
	}
    }
    else { # just return the numeric value
	return $return_codes{$test};
    }
}

sub log_level {
    my $test = shift;
    if ( $test =~ /^\d+$/ ) { # need to return the textural form
	foreach ( keys %log_levels ) {
	    return $_ if $log_levels{$_} =~ /$test/;
	}
    }
    else { # just return the numeric value
	return $log_levels{$test};
    }
}

1;

=head1 NAME

Qpsmtpd::Constants - Constants for plugins to use

=head1 CONSTANTS

See L<README.plugins> for hook specific information on applicable
constants.

Constants available:

=over 4

=item C<OK>

Return this only from the queue phase to indicate the mail was queued
successfully.

=item C<DENY>

Returning this from a hook causes a 5xx error (hard failure) to be
returned to the connecting client.

=item C<DENYSOFT>

Returning this from a hook causes a 4xx error (temporary failure - try
again later) to be returned to the connecting client.

=item C<DECLINED>

Returning this from a hook implies success, but tells qpsmtpd to go
on to the next plugin.

=item C<DONE>

Returning this from a hook implies success, but tells qpsmtpd to
skip any remaining plugins for this phase.

=back

=cut