Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Saturday, October 17, 2026

Diff for perl-modules/Platon/Log/Mail/Postfix.pm between version 1.10 and 1.11

version 1.10, 2004/12/09 18:09:53 version 1.11, 2005/12/04 21:33:45
Line 10 
Line 10 
 # 2004-10-19 - created  # 2004-10-19 - created
 #  #
   
 # $Platon: perl-modules/Platon/Log/Mail/Postfix.pm,v 1.9 2004/12/09 17:42:15 rajo Exp $  # $Platon: perl-modules/Platon/Log/Mail/Postfix.pm,v 1.10 2004/12/09 18:09:53 rajo Exp $
   
 package Platon::Log::Mail::Postfix;  package Platon::Log::Mail::Postfix;
   
Line 23  use Platon::Log::Mail;
Line 23  use Platon::Log::Mail;
 use Platon::DBI;  use Platon::DBI;
 use Date::Parse;  use Date::Parse;
 use Date::Format;  use Date::Format;
   #use Data::Dumper;
   
 $VERSION = sprintf("%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/);  $VERSION = sprintf("%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/);
 $DEBUG   = 0 unless defined $DEBUG;  $DEBUG   = 0 unless defined $DEBUG;
   
 #  #
 # this saves postfix error message into MySQL  # this saves postfix error message into MySQL
 #  # Note: data may be cached before inserting into MySQL
 sub savelog($$;)  sub savelog($$;)
 { # {{{  { # {{{
         my ($self, $line) = @_;          my ($self, $line) = @_;
Line 310  sub savelog($$;)
Line 311  sub savelog($$;)
   
 } # }}}  } # }}}
   
   # make cache empty
   sub flush()
   { # {{{
           my ($self) = @_;
   
           $self->{dbh}->check();
   
           if ($self->{_counter} >= $self->{_cache}) {
                   $self->{_counter} -= $self->{_cache};
                   my @param = splice @{$self->{_param} }, 0, ($self->{_nr_columns} * $self->{_cache});
                   $self->{sql_insert_multi}->execute(
                           @param
                   ) or warn $self->{sql_insert_multi}->errstr;
           }
           foreach (1..$self->{_counter}) {
                   $self->{_counter}--;
                   my @param = splice @{$self->{_param} }, 0, $self->{_nr_columns};
                   $self->{sql_insert}->execute(
                           @param
                   ) or warn $self->{sql_insert}->errstr;
           }
   
   } # }}}
   
 sub _savelog($$;)  sub _savelog($$;)
 { # {{{  { # {{{
         my ($self, $data) = @_;          my ($self, $data) = @_;
   
         $self->{dbh}->check();          # store parameters into cache
           foreach my $key (@{$self->{_columns}}) {
                   push @{ $self->{_param} }, $data->{$key};
           }
           $self->{_counter}++;
   
         $self->{sql_insert}->execute(          # if cache is full, insert data into MySQL database
                 $data->{created},               $data->{host},                  $data->{log_level},                     $data->{process_name},          if ($self->{_counter} >= $self->{_cache}) {
                 $data->{pid},                   $data->{postfix_key},   $data->{new_postfix_key},       $data->{client_hostname},                  #carp "Cache full, flushing ...";
                 $data->{client_ip},             $data->{uid},                   $data->{"message-id"},          $data->{"resent-message-id"},                  $self->flush();
                 $data->{from},                  $data->{to},          }
                 $data->{size},                  $data->{nrcpt},                 $data->{relay}, $data->{delay},  
                 $data->{status},                $data->{proto},                 $data->{helo},  $data->{sasl_method},          return 1;
                 $data->{sasl_username},  
                 $data->{amavis_id},             $data->{amavis_counter},        $data->{amavis_virus_name},     $data->{amavis_banned_file},  
                 $data->{amavis_quarantine},     $data->{amavis_SA_score},  
                 $data->{rest}  
         ) or warn $self->{sql_insert}->errstr;  
   
 } # }}}  } # }}}
   
Line 340  sub _init($$;)
Line 364  sub _init($$;)
         #$self->prepare_keyword('sql_delete', "DELETE FROM " . $conf->table);          #$self->prepare_keyword('sql_delete', "DELETE FROM " . $conf->table);
         #$self->{sql_delete}->execute();          #$self->{sql_delete}->execute();
   
         $self->prepare_keyword('sql_insert', "          $self->{_cache} = $conf->cache;
                 INSERT INTO " . $conf->table . "          $self->{_counter} = 0;
                         (created, hostname, log_level, process_name,          $self->{_param} = ( );
                         pid, postfix_key, new_postfix_key, client_hostname,          $self->{_sql_columns} = [ qw'
                         client_ip, client_uid, message_id, resent_message_id,          created hostname log_level process_name
                         mail_from, mail_to,          pid postfix_key new_postfix_key client_hostname
                         mail_size, mail_nrcpt, relay, delay,          client_ip client_uid message_id resent_message_id
                         status, proto, helo, sasl_method,          mail_from mail_to
                         sasl_username,          mail_size mail_nrcpt relay delay
                         amavis_id, amavis_counter, amavis_virus_name, amavis_banned_file,          status proto helo sasl_method
                         amavis_quarantine, amavis_SA_score,          sasl_username
                         message)          amavis_id amavis_counter amavis_virus_name amavis_banned_file
                 VALUES          amavis_quarantine amavis_SA_score
                         (?, ?, ?, ?,          message
                         ?, ?, ?, ?,          ' ];
                         ?, ?, ?, ?,  
                         ?, ?,          $self->{_columns} = [ qw'
                         ?, ?, ?, ?,                  created                         host                    log_level                       process_name
                         ?, ?, ?, ?,                  pid                                     postfix_key             new_postfix_key         client_hostname
                         ?,                  client_ip                       uid                             message-id                      resent-message-id
                         ?, ?, ?, ?,                  from                            to
                         ?, ?,                  size                            nrcpt                   relay                           delay
                         ?)                  status                          proto                   helo                            sasl_method
                 ");                  sasl_username
                   amavis_id                       amavis_counter  amavis_virus_name       amavis_banned_file
                   amavis_quarantine       amavis_SA_score
                   rest
                   ' ];
           $self->{_nr_columns} = scalar(@{$self->{_columns}});
   
           my $sql = ' (' . join(', ', @{$self->{_sql_columns}}) . ') VALUES ';
           my $val_sql_columns = '(' . join(', ', map { '?' } @{$self->{_sql_columns}}) . ')';
   
           $self->prepare_keyword('sql_insert',            'INSERT INTO ' . $conf->table . "$sql $val_sql_columns");
           $self->prepare_keyword('sql_insert_multi',      'INSERT IGNORE INTO ' . $conf->table . "$sql " . join(', ', map { $val_sql_columns } 1..$self->{_cache}));
   
 } # }}}  } # }}}
   

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top