View | Details | Raw Unified | Return to bug 166777 | Differences between
and this patch

Collapse All | Expand All

(-)SNMP_Session.pm (-7 / +7 lines)
Lines 146-152 Link Here
146
146
147
    if (eval {local $SIG{__DIE__};require Socket6;} &&
147
    if (eval {local $SIG{__DIE__};require Socket6;} &&
148
       eval {local $SIG{__DIE__};require IO::Socket::INET6; IO::Socket::INET6->VERSION("1.26");}) {
148
       eval {local $SIG{__DIE__};require IO::Socket::INET6; IO::Socket::INET6->VERSION("1.26");}) {
149
       	Socket6->import(qw(pack_sockaddr_in6 inet_pton inet_ntop unpack_sockaddr_in6 getaddrinfo));
149
       	Socket6->import(qw(inet_pton inet_ntop getaddrinfo));
150
	$ipv6_addr_len = length(pack_sockaddr_in6(161, inet_pton(AF_INET6(), "::1")));
150
	$ipv6_addr_len = length(pack_sockaddr_in6(161, inet_pton(AF_INET6(), "::1")));
151
	$SNMP_Session::ipv6available = 1;
151
	$SNMP_Session::ipv6available = 1;
152
    }
152
    }
Lines 549-555 Link Here
549
    # complaining about AF_INET6 when Socket6 is not available
549
    # complaining about AF_INET6 when Socket6 is not available
550
550
551
    if( (defined $ipv6_addr_len) && (length $addr == $ipv6_addr_len)) {
551
    if( (defined $ipv6_addr_len) && (length $addr == $ipv6_addr_len)) {
552
	($port,$addrunpack) = unpack_sockaddr_in6 ($addr);
552
	($port,$addrunpack) = Socket6::unpack_sockaddr_in6 ($addr);
553
	$addrstr = inet_ntop (AF_INET6(), $addrunpack);
553
	$addrstr = inet_ntop (AF_INET6(), $addrunpack);
554
    } else {
554
    } else {
555
	($port,$addrunpack) = unpack_sockaddr_in ($addr);
555
	($port,$addrunpack) = unpack_sockaddr_in ($addr);
Lines 605-611 Link Here
605
BEGIN {
605
BEGIN {
606
    if($SNMP_Session::ipv6available) {
606
    if($SNMP_Session::ipv6available) {
607
	import IO::Socket::INET6;
607
	import IO::Socket::INET6;
608
	Socket6->import(qw(pack_sockaddr_in6 inet_pton inet_ntop unpack_sockaddr_in6 getaddrinfo)); 
608
	Socket6->import(qw(inet_pton inet_ntop getaddrinfo)); 
609
    }
609
    }
610
}
610
}
611
611
Lines 825-832 Link Here
825
	($p2,$a2) = unpack_sockaddr_in ($sa2);
825
	($p2,$a2) = unpack_sockaddr_in ($sa2);
826
    } elsif($this->{'sockfamily'} == AF_INET6()) {
826
    } elsif($this->{'sockfamily'} == AF_INET6()) {
827
	# IPv6 addresses
827
	# IPv6 addresses
828
	($p1,$a1) = unpack_sockaddr_in6 ($sa1);
828
	($p1,$a1) = Socket6::unpack_sockaddr_in6 ($sa1);
829
	($p2,$a2) = unpack_sockaddr_in6 ($sa2);
829
	($p2,$a2) = Socket6::unpack_sockaddr_in6 ($sa2);
830
    } else {
830
    } else {
831
	return 0;
831
	return 0;
832
    }
832
    }
Lines 899-905 Link Here
899
    return undef unless $remote_addr;
899
    return undef unless $remote_addr;
900
900
901
    if( (defined $ipv6_addr_len) && (length $remote_addr == $ipv6_addr_len)) {
901
    if( (defined $ipv6_addr_len) && (length $remote_addr == $ipv6_addr_len)) {
902
	($port,$iaddr) = unpack_sockaddr_in6($remote_addr);
902
	($port,$iaddr) = Socket6::unpack_sockaddr_in6($remote_addr);
903
    } else {
903
    } else {
904
	($port,$iaddr) = unpack_sockaddr_in($remote_addr);
904
	($port,$iaddr) = unpack_sockaddr_in($remote_addr);
905
    }
905
    }
Lines 948-954 Link Here
948
    return undef unless $remote_addr;
948
    return undef unless $remote_addr;
949
949
950
    if( (defined $ipv6_addr_len) && (length $remote_addr == $ipv6_addr_len)) {
950
    if( (defined $ipv6_addr_len) && (length $remote_addr == $ipv6_addr_len)) {
951
	($port,$iaddr) = unpack_sockaddr_in6($remote_addr);
951
	($port,$iaddr) = Socket6::unpack_sockaddr_in6($remote_addr);
952
    } else {
952
    } else {
953
	($port,$iaddr) = unpack_sockaddr_in($remote_addr);
953
	($port,$iaddr) = unpack_sockaddr_in($remote_addr);
954
    }
954
    }

Return to bug 166777