From 75a543f116f7ac07ac3f7cb5d393db58bea836f2 Mon Sep 17 00:00:00 2001 From: yinle Date: Thu, 10 May 2012 02:49:07 +0000 Subject: [PATCH] Fix the issue that too many IPs in the PRLIST of the package. git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12591 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- perl-xCAT/xCAT/SLP.pm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/perl-xCAT/xCAT/SLP.pm b/perl-xCAT/xCAT/SLP.pm index 21778625f..76d29b6f2 100644 --- a/perl-xCAT/xCAT/SLP.pm +++ b/perl-xCAT/xCAT/SLP.pm @@ -66,13 +66,13 @@ sub dodiscover { my $interfaces = get_interfaces(%args); if ($args{Ip}) { my @ips = split /,/, $args{Ip}; - foreach my $ip (@ips) { - foreach my $nic (keys %$interfaces) { - unless (${${$interfaces->{$nic}}{ipv4addrs}}[0] =~ $ip) { - delete $interfaces->{$nic}; - } - } + foreach my $ip (@ips) { + foreach my $nic (keys %$interfaces) { + unless (${${$interfaces->{$nic}}{ipv4addrs}}[0] =~ $ip) { + delete $interfaces->{$nic}; + } } + } } foreach my $srvtype (@srvtypes) { send_service_request_single(%args,ifacemap=>$interfaces,SrvType=>$srvtype); @@ -84,7 +84,7 @@ sub dodiscover { $waitforsocket->add($args{'socket'}); my $retrytime = ($args{Retry}>0)?$args{Retry}+1:1; for(my $i = 0; $i < $retrytime; $i++){ - my $waittime = ($args{Time}>0)?$args{Time}:3; + my $waittime = ($args{Time}>0)?$args{Time}:3; my $deadline=time()+$waittime; while ($deadline > time()) { while ($waitforsocket->can_read(1)) { @@ -109,7 +109,7 @@ sub dodiscover { } $result->{peername} = $peername; if ($gprlist) { - $gprlist = $gprlist.','.$peername; + $gprlist = $gprlist.','.$peername if($rspcount < 100); } else { $gprlist = $peername; } @@ -119,12 +119,12 @@ sub dodiscover { if ($peername =~ /fe80/) { $peername .= '%'.$scope; } + $rspcount++; $rethash{$peername} = $result; if ($args{Callback}) { $args{Callback}->($result); } } - $rspcount++; } if ($args{Time} and $args{Count}) { if ($rspcount >= $args{Count}) {