mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	For ipv6, replace inet_* and gethostby* calls with NetworkUtils subroutines
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@6033 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -1114,7 +1114,8 @@ sub spot_updates | ||||
|  | ||||
|         # we don't want to include the nimprime in the list of SNs | ||||
|         #  need to compare IPs of nimprime and SN | ||||
|         my $ip = inet_ntoa(inet_aton($nimprime)); | ||||
|         #my $ip = inet_ntoa(inet_aton($nimprime)); | ||||
|         my $ip = xCAT::NetworkUtils->getipaddr($nimprime); | ||||
|         chomp $ip; | ||||
|  | ||||
|         my ($p1, $p2, $p3, $p4) = split /\./, $ip; | ||||
| @@ -1125,7 +1126,8 @@ sub spot_updates | ||||
|  | ||||
|             # if the SN is the same as the nim prime then skip it | ||||
|             #  nimprime is handle differently | ||||
|             my $ip = inet_ntoa(inet_aton($srvnode)); | ||||
|             #my $ip = inet_ntoa(inet_aton($srvnode)); | ||||
|             my $ip = xCAT::NetworkUtils->getipaddr($srvnode); | ||||
|             chomp $ip; | ||||
|             my ($s1, $s2, $s3, $s4) = split /\./, $ip; | ||||
|             if (($s1 == $p1) && ($s2 == $p2) && ($s3 == $p3) && ($s4 == $p4)) | ||||
| @@ -3678,8 +3680,8 @@ sub update_rhosts | ||||
|     { | ||||
|  | ||||
|         # get the node IP for the file entry | ||||
|         # TODO - need IPv6 update | ||||
|         my $IP = inet_ntoa(inet_aton($node)); | ||||
|         #my $IP = inet_ntoa(inet_aton($node)); | ||||
|         my $IP = xCAT::NetworkUtils->getipaddr($node); | ||||
|         chomp $IP; | ||||
|         unless ($IP =~ /\d+\.\d+\.\d+\.\d+/) | ||||
|         { | ||||
| @@ -4648,7 +4650,8 @@ sub prenimnodecust | ||||
|     #  - if not then exit | ||||
|     foreach my $n (@nodelist) | ||||
|     { | ||||
|         my $packed_ip = gethostbyname($n); | ||||
|         #my $packed_ip = gethostbyname($n); | ||||
|         my $packed_ip = xCAT::NetworkUtils->getipaddr($n); | ||||
|         if (!$packed_ip) | ||||
|         { | ||||
|             my $rsp; | ||||
| @@ -6106,7 +6109,8 @@ sub mkdsklsnode | ||||
|     #  - if not then exit | ||||
|     foreach my $n (@nodelist) | ||||
|     { | ||||
|         my $packed_ip = gethostbyname($n); | ||||
|         #my $packed_ip = gethostbyname($n); | ||||
|         my $packed_ip = xCAT::NetworkUtils->getipaddr($n); | ||||
|         if (!$packed_ip) | ||||
|         { | ||||
|             my $rsp; | ||||
| @@ -6394,7 +6398,8 @@ sub mkdsklsnode | ||||
|  | ||||
|         # get, check the node IP | ||||
|         # TODO - need IPv6 update | ||||
|         my $IP = inet_ntoa(inet_aton($node)); | ||||
|         #my $IP = inet_ntoa(inet_aton($node)); | ||||
|         my $IP = xCAT::NetworkUtils->getipaddr($node); | ||||
|         chomp $IP; | ||||
|         unless ($IP =~ /\d+\.\d+\.\d+\.\d+/) | ||||
|         { | ||||
| @@ -6823,41 +6828,17 @@ sub checkNIMnetworks | ||||
|  | ||||
|         # see if the NIM net we need is defined | ||||
|  | ||||
|         # split node mask | ||||
|         my ($nm1, $nm2, $nm3, $nm4) = split('\.', $nethash{$node}{mask}); | ||||
|  | ||||
|         # split node net addr | ||||
|         my ($nn1, $nn2, $nn3, $nn4) = split('\.', $nethash{$node}{net}); | ||||
|  | ||||
|         my $foundmatch = 0; | ||||
|  | ||||
|         # foreach nim network name | ||||
|         foreach my $netwk (@networks) | ||||
|         { | ||||
|         foreach my $netwk (@networks) { | ||||
|  | ||||
|             # split definition mask | ||||
|             my ($dm1, $dm2, $dm3, $dm4) = split('\.', $NIMnets{$netwk}{'snm'}); | ||||
|  | ||||
|             # split definition net addr | ||||
|  | ||||
|             my ($dn1, $dn2, $dn3, $dn4) = | ||||
|               split('\.', $NIMnets{$netwk}{'net_addr'}); | ||||
|  | ||||
|             # check for the same netmask and network address | ||||
|             if (   ($nn1 == $dn1) | ||||
|                 && ($nn2 == $dn2) | ||||
|                 && ($nn3 == $dn3) | ||||
|                 && ($nn4 == $dn4)) | ||||
|             { | ||||
|                 if (   ($nm1 == $dm1) | ||||
|                     && ($nm2 == $dm2) | ||||
|                     && ($nm3 == $dm3) | ||||
|                     && ($nm4 == $dm4)) | ||||
|                 { | ||||
|                     $foundmatch = 1; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         # check for the same netmask and network address | ||||
|               if ( ($nethash{$node}{net} eq $NIMnets{$netwk}{'net_addr'}) ) { | ||||
|                       if ( $nethash{$node}{mask} eq $NIMnets{$netwk}{'snm'} ) { | ||||
|                              $foundmatch=1; | ||||
|                       } | ||||
|                } | ||||
|      } | ||||
|  | ||||
|         # if not defined then define it! | ||||
|         if (!$foundmatch) | ||||
| @@ -6915,37 +6896,18 @@ sub checkNIMnetworks | ||||
|             } | ||||
|  | ||||
|             my $adapterhostname; | ||||
|             foreach my $int (@result) | ||||
|             { | ||||
|                 my ($inet, $myIP, $str) = split(" ", $int); | ||||
|                 chomp $myIP; | ||||
|             foreach my $int (@result) { | ||||
|                     my ($inet, $myIP, $str) = split(" ", $int); | ||||
|                     chomp $myIP; | ||||
|                     $myIP =~ s/\/.*//; # ipv6 address 4000::99/64 | ||||
|                     $myIP =~ s/\%.*//; # ipv6 address ::1%1/128 | ||||
|  | ||||
|                 # split interface IP | ||||
|                 my ($h1, $h2, $h3, $h4) = split('\.', $myIP); | ||||
|  | ||||
|                 # split mask | ||||
|                 my ($m1, $m2, $m3, $m4) = split('\.', $nethash{$node}{mask}); | ||||
|  | ||||
|                 # split net address | ||||
|                 my ($n1, $n2, $n3, $n4) = split('\.', $nethash{$node}{net}); | ||||
|  | ||||
|                 # AND this interface IP with the netmask of the network | ||||
|                 my $a1 = ((int $h1) & (int $m1)); | ||||
|                 my $a2 = ((int $h2) & (int $m2)); | ||||
|                 my $a3 = ((int $h3) & (int $m3)); | ||||
|                 my $a4 = ((int $h4) & (int $m4)); | ||||
|  | ||||
|                 # if all the octals match the network addr then we have | ||||
|                 #	the right interface | ||||
|                 if (   ($n1 == $a1) | ||||
|                     && ($n2 == $a2) | ||||
|                     && ($n3 == $a3) | ||||
|                     && ($n4 == $a4)) | ||||
|                 { | ||||
|                     my $packedaddr = inet_aton($myIP); | ||||
|                     $adapterhostname = gethostbyaddr($packedaddr, AF_INET); | ||||
|                     last; | ||||
|                 } | ||||
|                     # if the ip address is in the subnet | ||||
|                     #       the right interface | ||||
|                     if ( xCAT::NetworkUtils->ishostinsubnet($myIP, $nethash{$node}{mask}, $nethash{$node}{net} )) { | ||||
|                             $adapterhostname = xCAT::NetworkUtils->gethostname($myIP); | ||||
|                             last; | ||||
|                     } | ||||
|             } | ||||
|  | ||||
|             # define the new interface | ||||
|   | ||||
		Reference in New Issue
	
	Block a user