--- Perlbal-1.70c/lib/Perlbal/Pool.pm 2008-03-12 14:27:52.000000000 -0500 +++ Perlbal-1.70d/lib/Perlbal/Pool.pm 2008-03-12 14:53:11.000000000 -0500 @@ -147,11 +147,14 @@ foreach (@nodes) { s/\#.*//; - if (/(\d+\.\d+\.\d+\.\d+)(?::(\d+))?/) { - my ($ip, $port) = ($1, $2); + if (/(\d+\.\d+\.\d+\.\d+)(?::(\d+))?(?:\s+(\d+))?/) { + my ($ip, $port, $weight) = ($1, $2, $3); $port ||= 80; + $weight ||= 1; $self->{node_used}->{"$ip:$port"} ||= 0; # set to 0 if not set - push @{$self->{nodes}}, [ $ip, $port ]; + for (my $i = 0; $i < $weight; ++$i) { + push @{$self->{nodes}}, [ $ip, $port ]; + } } }