diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-03-05 09:43:48 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-03-05 09:43:48 -0600 |
commit | 78ee25dfbd4088039ae508e4b2dd26646c2734f0 (patch) | |
tree | a3257e7cc5d874842c72bbc97b19ab1593cd27f8 | |
parent | 2474f1d93f3e58c4b6055fd4209e6e437892ca64 (diff) | |
download | app-termcast-78ee25dfbd4088039ae508e4b2dd26646c2734f0.tar.gz app-termcast-78ee25dfbd4088039ae508e4b2dd26646c2734f0.zip |
make sure we apply ReadMode to the right filehandle
-rw-r--r-- | lib/App/Termcast.pm | 24 |
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 { |