Server IP : 85.214.239.14 / Your IP : 18.217.145.189 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/perl5/Mail/AuthenticationResults/Header/ |
Upload File : |
package Mail::AuthenticationResults::Header::Comment; # ABSTRACT: Class modelling Comment parts of the Authentication Results Header require 5.008; use strict; use warnings; our $VERSION = '2.20230112'; # VERSION use Scalar::Util qw{ weaken }; use Carp; use base 'Mail::AuthenticationResults::Header::Base'; sub _HAS_VALUE{ return 1; } sub safe_set_value { my ( $self, $value ) = @_; $value = q{} if ! defined $value; $value =~ s/\t/ /g; $value =~ s/\n/ /g; $value =~ s/\r/ /g; my $remain = $value; my $depth = 0; my $nested_ok = 1; while ( length $remain > 0 ) { my $first = substr( $remain,0,1 ); $remain = substr( $remain,1 ); $depth++ if $first eq '('; $depth-- if $first eq ')'; $nested_ok = 0 if $depth == -1; } $nested_ok = 0 if $depth != 0; # Remove parens if nested comments would be broken by them. if ( ! $nested_ok ) { $value =~ s/\(/ /g; $value =~ s/\)/ /g; } $value =~ s/^\s+//; $value =~ s/\s+$//; #$value =~ s/;/ /g; $self->set_value( $value ); return $self; } sub set_value { my ( $self, $value ) = @_; my $remain = $value; my $depth = 0; while ( length $remain > 0 ) { my $first = substr( $remain,0,1 ); $remain = substr( $remain,1 ); $depth++ if $first eq '('; $depth-- if $first eq ')'; croak 'Out of order parens in comment' if $depth == -1; } croak 'Mismatched parens in comment' if $depth != 0; croak 'Invalid characters in value' if $value =~ /\n/; croak 'Invalid characters in value' if $value =~ /\r/; $self->{ 'value' } = $value; return $self; } sub build_string { my ( $self, $header ) = @_; $header->comment( '(' . $self->value() . ')' ); return; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Mail::AuthenticationResults::Header::Comment - Class modelling Comment parts of the Authentication Results Header =head1 VERSION version 2.20230112 =head1 DESCRIPTION Comments may be associated with many parts of the Authentication Results set, this class represents a comment. Please see L<Mail::AuthenticationResults::Header::Base> =head1 AUTHOR Marc Bradshaw <marc@marcbradshaw.net> =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2021 by Marc Bradshaw. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut