summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-11-02 23:48:39 -0500
committerJesse Luehrs <doy@tozt.net>2010-11-02 23:48:39 -0500
commit0df616f5517aae63bcd01b3147ec45b7943ddefb (patch)
tree2d63c2e22d14b51dd57777dfeb2c1756ddd33b63
parent706298e73d7ce7b264b50c7a5535bc0581243632 (diff)
downloadapp-termcast-0df616f5517aae63bcd01b3147ec45b7943ddefb.tar.gz
app-termcast-0df616f5517aae63bcd01b3147ec45b7943ddefb.zip
repeatedly try reconnecting, don't just die after trying once
-rw-r--r--lib/App/Termcast.pm11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/App/Termcast.pm b/lib/App/Termcast.pm
index df5870c..132a2b7 100644
--- a/lib/App/Termcast.pm
+++ b/lib/App/Termcast.pm
@@ -138,10 +138,13 @@ has socket => (
sub _build_socket {
my $self = shift;
- my $socket = IO::Socket::INET->new(PeerAddr => $self->host,
- PeerPort => $self->port);
- die "Couldn't connect to " . $self->host . ": $!"
- unless $socket;
+ my $socket;
+ while (!$socket) {
+ $socket = IO::Socket::INET->new(PeerAddr => $self->host,
+ PeerPort => $self->port);
+ Carp::carp "Couldn't connect to " . $self->host . ": $!"
+ unless $socket;
+ }
$socket->syswrite($self->establishment_message);
return $socket;
}