File Coverage

blib/lib/Socket/Multicast.pm
Criterion Covered Total %
statement 12 26 46.1
branch 0 6 0.0
condition n/a
subroutine 4 6 66.6
pod n/a
total 16 38 42.1


line stmt bran cond sub pod time code
1             package Socket::Multicast;
2 2     2   122315 use strict;
  2         5  
  2         95  
3 2     2   11 use warnings;
  2         5  
  2         62  
4              
5 2     2   11 use Carp;
  2         8  
  2         1132  
6              
7             our $VERSION = '0.01';
8             our $XS_VERSION = $VERSION;
9             $VERSION = eval $VERSION;
10              
11             require XSLoader;
12             XSLoader::load('Socket::Multicast', $XS_VERSION);
13              
14             require Exporter;
15              
16             our @ISA = qw(Exporter);
17              
18             our %EXPORT_TAGS = ( 'all' => [ qw(
19             IP_MULTICAST_IF
20             IP_MULTICAST_TTL
21             IP_MULTICAST_LOOP
22             IP_ADD_MEMBERSHIP
23             IP_DROP_MEMBERSHIP
24             pack_ip_mreq
25             ) ] );
26              
27             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
28              
29             our @EXPORT = qw();
30              
31             sub AUTOLOAD {
32             # This AUTOLOAD is used to 'autoload' constants from the constant()
33             # XS function. If a constant is not found then control is passed
34             # to the AUTOLOAD in AutoLoader.
35              
36 0     0     my $constname;
37 0           our $AUTOLOAD;
38 0           ($constname = $AUTOLOAD) =~ s/.*:://;
39 0 0         croak "&Socket::Multicast::constant not defined" if $constname eq 'constant';
40 0           my ($error, $val) = constant($constname);
41 0 0         if ($error) {
42 0 0         if ($error =~ /is not a valid/) {
43 0           $AutoLoader::AUTOLOAD = $AUTOLOAD;
44 0           goto &AutoLoader::AUTOLOAD;
45             } else {
46 0           croak $error;
47             }
48             }
49             {
50 2     2   13 no strict 'refs';
  2         3  
  2         205  
  0            
51             # Fixed between 5.005_53 and 5.005_61
52             # if ($] >= 5.00561) {
53             # *$AUTOLOAD = sub () { $val };
54             # }
55             # else {
56 0     0     *$AUTOLOAD = sub { $val };
  0            
57             # }
58             }
59 0           goto &$AUTOLOAD;
60             }
61              
62              
63             # Preloaded methods go here.
64              
65             1;
66             __END__