# # Mail::SPF::Mech::IP6 # SPF record "ip6" mechanism class. # # (C) 2005-2012 Julian Mehnle # 2005 Shevek # $Id: IP6.pm 57 2012-01-30 08:15:31Z julian $ # ############################################################################## package Mail::SPF::Mech::IP6; =head1 NAME Mail::SPF::Mech::IP6 - SPF record C mechanism class =cut use warnings; use strict; use base 'Mail::SPF::SenderIPAddrMech'; use constant TRUE => (0 == 0); use constant FALSE => not TRUE; use constant name => 'ip6'; use constant name_pattern => qr/${\name}/i; =head1 DESCRIPTION An object of class B represents an SPF record mechanism of type C. =head2 Constructors The following constructors are provided: =over =item B: returns I Creates a new SPF record C mechanism object. %options is a list of key/value pairs representing any of the following options: =over =item B =item B See L. =back =item B: returns I; throws I, I Creates a new SPF record C mechanism object by parsing the string and any options given. =back =head2 Class methods The following class methods are provided: =over =item B =item B =item B See L. =item B: returns I Returns B<'ip6'>. =item B: returns I Returns a regular expression that matches a mechanism name of B<'ip6'>. =back =head2 Instance methods The following instance methods are provided: =over =cut sub parse_params { my ($self) = @_; $self->parse_ipv6_network(TRUE); return; } =item B =item B =item B =cut sub params { my ($self) = @_; my $params = ':' . $self->{ip_network}->short; $params .= '/' . $self->{ip_network}->masklen if $self->{ip_network}->masklen != $self->default_ipv6_prefix_length; return $params; } =item B See L. =item B: returns I Returns the IP address network parameter of the mechanism. =cut # Make read-only accessors: __PACKAGE__->make_accessor($_, TRUE) foreach qw(ip_network ip_address ipv6_prefix_length); =item B: returns I Returns B if the mechanism's C equals or contains the given request's IP address, or B otherwise. See RFC 4408, 5.6, for details. =cut sub match { my ($self, $server, $request) = @_; return $self->ip_network->contains($request->ip_address_v6); } =back =head1 SEE ALSO L, L, L, L L For availability, support, and license information, see the README file included with Mail::SPF. =head1 AUTHORS Julian Mehnle , Shevek =cut TRUE;