Make the INET6 support check more direct and to the point

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@744 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
jbjohnso 2008-03-10 18:05:26 +00:00
parent 537992a57a
commit ac0b54f66b
3 changed files with 27 additions and 20 deletions

View File

@ -10,15 +10,18 @@ use xCAT::NodeRange;
use xCAT::Utils;
use xCAT::Table;
my $inet6support;
use IO::Socket::SSL;
if (xCAT::Utils->isLinux()) {
eval { require Socket6 };
eval { require IO::Socket::INET6 };
eval { require IO::Socket::SSL::inet6 };
} else {
eval { require Socket };
eval { require IO::Socket::INET };
$inet6support=eval { require Socket6 };
if ($inet6support) {
$inet6support = eval { require IO::Socket::INET6 };
}
if ($inet6support) {
$inet6support = eval { require IO::Socket::SSL::inet6 };
}
unless ($inet6support) {
eval { require Socket };
eval { require IO::Socket::INET };
}
use XML::Simple;

View File

@ -13,13 +13,17 @@ use Thread qw(yield);
use xCAT::Client submit_request;
use IO::Socket::SSL;
if (xCAT::Utils->isLinux()) {
eval { require Socket6 };
eval { require IO::Socket::INET6 };
eval { require IO::Socket::SSL::inet6 };
} else {
eval { require Socket };
eval { require IO::Socket::INET };
my $inet6support;
$inet6support=eval { require Socket6 };
if ($inet6support) {
$inet6support = eval { require IO::Socket::INET6 };
}
if ($inet6support) {
$inet6support = eval { require IO::Socket::SSL::inet6 };
}
unless ($inet6support) {
eval { require Socket };
eval { require IO::Socket::INET };
}
my $dispatch_requests = 1; # govern whether commands are dispatchable
@ -103,7 +107,7 @@ sub do_installm_service {
#This function servers as a handler for messages from installing nodes
my $socket;
if (xCAT::Utils->isLinux()) {
if ($inet6support) {
$socket = IO::Socket::INET6->new(LocalPort=>$sport,
Proto => 'tcp',
ReuseAddr => 1,
@ -125,7 +129,7 @@ if (xCAT::Utils->isLinux()) {
next unless $conn = $socket->accept;
my @clients;
if (xCAT::Utils->isLinux()) {
if ($inet6support) {
@clients = gethostbyaddr($conn->peeraddr,AF_INET6);
} else {
@clients = gethostbyaddr($conn->peeraddr,AF_INET);
@ -228,7 +232,7 @@ sub do_udp_service { #This function opens up a UDP port
$dispatch_requests=0;
my $socket;
my $select = new IO::Select;
if (xCAT::Utils->isLinux()) {
if ($inet6support) {
$socket = IO::Socket::INET6->new(LocalPort => $port,
Proto => 'udp',
Domain => AF_INET);
@ -401,7 +405,7 @@ until ($quit) {
}
$sitetab->close;
if (xCAT::Utils->isLinux()) {
if ($inet6support) {
$peerhost = gethostbyaddr($connection->peeraddr,AF_INET6);
} else {
$peerhost = gethostbyaddr($connection->peeraddr,AF_INET);

View File

@ -15,7 +15,7 @@ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
# also need to fix Requires for AIX
%ifos linux
BuildArch: noarch
Requires: perl-IO-Socket-SSL perl-XML-Simple perl-IO-Socket-INET6
Requires: perl-IO-Socket-SSL perl-XML-Simple
%endif
Requires: perl-xCAT = %{version}