summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-03-05 09:43:48 -0600
committerJesse Luehrs <doy@tozt.net>2012-03-05 09:43:48 -0600
commit78ee25dfbd4088039ae508e4b2dd26646c2734f0 (patch)
treea3257e7cc5d874842c72bbc97b19ab1593cd27f8
parent2474f1d93f3e58c4b6055fd4209e6e437892ca64 (diff)
downloadapp-termcast-78ee25dfbd4088039ae508e4b2dd26646c2734f0.tar.gz
app-termcast-78ee25dfbd4088039ae508e4b2dd26646c2734f0.zip
make sure we apply ReadMode to the right filehandle
-rw-r--r--lib/App/Termcast.pm24
1 files changed, 16 insertions, 8 deletions
diff --git a/lib/App/Termcast.pm b/lib/App/Termcast.pm
index 75613aa..6aa1c0e 100644
--- a/lib/App/Termcast.pm
+++ b/lib/App/Termcast.pm
@@ -179,9 +179,11 @@ sub _build_socket {
PeerPort => $self->port);
if (!$socket) {
Carp::carp "Couldn't connect to " . $self->host . ": $!";
- ReadMode 0 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(0, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
sleep 5;
- ReadMode 5 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(5, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
redo;
}
}
@@ -197,7 +199,8 @@ sub _build_socket {
for my $fh (@$e) {
if ($fh == $socket) {
- ReadMode 0 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(0, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
Carp::croak("Invalid password");
}
}
@@ -206,26 +209,31 @@ sub _build_socket {
my $buf;
$socket->recv($buf, 4096);
if (!defined $buf || length $buf == 0) {
- ReadMode 0 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(0, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
Carp::croak("Invalid password");
}
elsif ($buf ne ('hello, ' . $self->user . "\n")) {
- ReadMode 0 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(0, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
Carp::carp("Unknown login response from server: $buf");
- ReadMode 5 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(5, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
}
}
}
}
- ReadMode 5 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(5, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
return $socket;
}
before clear_socket => sub {
my $self = shift;
Carp::carp("Lost connection to server ($!), reconnecting...");
- ReadMode 0 if $self->_has_term && $self->_term->_raw_mode;
+ ReadMode(0, $self->input)
+ if $self->_has_term && $self->_term->_raw_mode;
};
sub _new_socket {