version 1.362, 2007/03/12 22:24:58
|
version 1.363, 2007/03/28 00:05:38
|
Line 5309 sub reconlonc {
|
Line 5309 sub reconlonc {
|
} |
} |
} |
} |
|
|
# -------------------------------------------------- Non-critical communication |
sub create_connection { |
|
my ($server) = @_; |
|
my $client=IO::Socket::UNIX->new(Peer => $perlvar{'lonSockCreate'}, |
|
Type => SOCK_STREAM, |
|
Timeout => 10); |
|
return 0 if (!$client); |
|
print $client ("$server\n"); |
|
my $result = <$client>; |
|
chomp($result); |
|
return 1 if ($result eq 'done'); |
|
return 0; |
|
} |
|
|
|
# -------------------------------------------------- Non-critical communication |
|
my $max_connection_retries = 10; |
sub subreply { |
sub subreply { |
my ($cmd,$server)=@_; |
my ($cmd,$server)=@_; |
my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server}; |
my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server}; |
my $sclient=IO::Socket::UNIX->new(Peer =>"$peerfile", |
my $sclient; |
Type => SOCK_STREAM, |
for (my $retries = 0; $retries < $max_connection_retries; $retries++) { |
Timeout => 10) |
$sclient=IO::Socket::UNIX->new(Peer =>"$peerfile", |
or return "con_lost"; |
Type => SOCK_STREAM, |
|
Timeout => 10); |
|
if($sclient) { |
|
last; # Connected! |
|
} else { |
|
&create_connection($hostname{$server}); |
|
} |
|
sleep(1); # Try again later if failed connection. |
|
} |
print $sclient "sethost:$server:$cmd\n"; |
print $sclient "sethost:$server:$cmd\n"; |
my $answer=<$sclient>; |
my $answer=<$sclient>; |
chomp($answer); |
chomp($answer); |