cvs commit: qpsmtpd/lib Qpsmtpd.pm
[email protected] (John Peacock) 1 Mar 2005 14:33:26 -0000
| Newsgroups | perl.cvs.qpsmtpd |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 05/03/01 06:33:26
Modified: lib Qpsmtpd.pm
Log:
* lib/Qpsmtpd.pm
Use package lexical to cache spool dir location instead of storing in
Transaction or other high level object
Revision Changes Path
1.48 +13 -9 qpsmtpd/lib/Qpsmtpd.pm
Index: Qpsmtpd.pm
===================================================================
RCS file: /cvs/public/qpsmtpd/lib/Qpsmtpd.pm,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- Qpsmtpd.pm 22 Feb 2005 02:47:38 -0000 1.47
+++ Qpsmtpd.pm 1 Mar 2005 14:33:26 -0000 1.48
@@ -255,31 +255,35 @@
}
}
+my $spool_dir = "";
+
sub spool_dir {
my $self = shift;
- unless ( $self->{_spool_dir} ) { # first time through
- my $spool_dir = $self->config('spool_dir')
- || Qpsmtpd::Utils::tildeexp('~/tmp/');
+ unless ( $spool_dir ) { # first time through
+ $self->log(LOGINFO, "Initializing spool_dir");
+ $spool_dir = $self->config('spool_dir')
+ || Qpsmtpd::Utils::tildeexp('~/tmp/');
$spool_dir .= "/" unless ($spool_dir =~ m!/$!);
-
+
$spool_dir =~ /^(.+)$/ or die "spool_dir not configured properly";
$spool_dir = $1; # cleanse the taint
- $self->{_spool_dir} = $spool_dir;
# Make sure the spool dir has appropriate rights
if (-e $spool_dir) {
my $mode = (stat($spool_dir))[2];
- warn "Permissions on spool_dir $spool_dir are not 0700" if $mode & 07077;
+ $self->log(LOGWARN,
+ "Permissions on spool_dir $spool_dir are not 0700")
+ if $mode & 07077;
}
# And finally, create it if it doesn't already exist
-d $spool_dir or mkdir($spool_dir, 0700)
or die "Could not create spool_dir $spool_dir: $!";
- }
-
- return $self->{_spool_dir};
+ }
+
+ return $spool_dir;
}
# For unique filenames. We write to a local tmp dir so we don't need