← Index
NYTProf Performance Profile   « line view »
For /usr/local/libexec/sympa/task_manager-debug.pl
  Run on Tue Jun 1 22:32:51 2021
Reported on Tue Jun 1 22:35:15 2021

Filename/usr/local/lib/perl5/site_perl/Mail/DKIM/Canonicalization/dk_simple.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
0000s0sMail::DKIM::Canonicalization::dk_simple::::BEGIN@13Mail::DKIM::Canonicalization::dk_simple::BEGIN@13
0000s0sMail::DKIM::Canonicalization::dk_simple::::BEGIN@14Mail::DKIM::Canonicalization::dk_simple::BEGIN@14
0000s0sMail::DKIM::Canonicalization::dk_simple::::BEGIN@2Mail::DKIM::Canonicalization::dk_simple::BEGIN@2
0000s0sMail::DKIM::Canonicalization::dk_simple::::BEGIN@3Mail::DKIM::Canonicalization::dk_simple::BEGIN@3
0000s0sMail::DKIM::Canonicalization::dk_simple::::canonicalize_bodyMail::DKIM::Canonicalization::dk_simple::canonicalize_body
0000s0sMail::DKIM::Canonicalization::dk_simple::::canonicalize_headerMail::DKIM::Canonicalization::dk_simple::canonicalize_header
0000s0sMail::DKIM::Canonicalization::dk_simple::::initMail::DKIM::Canonicalization::dk_simple::init
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Mail::DKIM::Canonicalization::dk_simple;
2use strict;
3use warnings;
4our $VERSION = '1.20200907'; # VERSION
5# ABSTRACT: dk simple canonicalization
6
7# Copyright 2005 Messiah College. All rights reserved.
8# Jason Long <jlong@messiah.edu>
9
10# This program is free software; you can redistribute it and/or
11# modify it under the same terms as Perl itself.
12
13use base 'Mail::DKIM::Canonicalization::DkCommon';
14use Carp;
15
16sub init {
17 my $self = shift;
18 $self->SUPER::init;
19
20 $self->{canonicalize_body_empty_lines} = 0;
21}
22
23sub canonicalize_header {
24 my $self = shift;
25 croak 'wrong number of parameters' unless ( @_ == 1 );
26 my ($line) = @_;
27
28 return $line;
29}
30
31sub canonicalize_body {
32 my $self = shift;
33 my ($multiline) = @_;
34
35 # ignore empty lines at the end of the message body
36 #
37 # (i.e. do not emit empty lines until a following nonempty line
38 # is found)
39 #
40 my $empty_lines = $self->{canonicalize_body_empty_lines};
41
42 if ( $multiline =~ s/^((?:\015\012)+)// )
43 { # count & strip leading empty lines
44 $empty_lines += length($1) / 2;
45 }
46
47 if ( $empty_lines > 0 && length($multiline) > 0 )
48 { # re-insert leading white if any nonempty lines exist
49 $multiline = ( "\015\012" x $empty_lines ) . $multiline;
50 $empty_lines = 0;
51 }
52
53 while ( $multiline =~ /\015\012\015\012\z/ )
54 { # count & strip trailing empty lines
55 chop $multiline;
56 chop $multiline;
57 $empty_lines++;
58 }
59
60 $self->{canonicalize_body_empty_lines} = $empty_lines;
61 return $multiline;
62}
63
641;
65
66__END__