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