while (!$sock && $conn_tries < 2*@{$opts{servers}}) {
debug("Connecting to $opts{servers}->[0]...");
my %sockinfo = (PeerAddr => $opts{servers}->[0],
PeerPort => 6667);
if ($opts{localaddr}) { $sockinfo{LocalAddr} = $opts{localaddr}; }
$sock = IO::Socket::INET->new(%sockinfo) or
debug("Error: failed to connect: $!\n");
++$conn_tries;
if (!$sock) {
# cycle front server to back if connection failed
push(@{$opts{servers}},shift(@{$opts{servers}}));
}
else { debug("Connected."); }
}
if (!$sock) {
debug("Error: Too many connection failures, exhausted server list.\n",1);
}