From 78ee25dfbd4088039ae508e4b2dd26646c2734f0 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 5 Mar 2012 09:43:48 -0600 Subject: make sure we apply ReadMode to the right filehandle --- lib/App/Termcast.pm | 24 ++++++++++++++++-------- 1 file 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 { -- cgit v1.2.3-54-g00ecf