--- AnyEvent/lib/AnyEvent/Handle.pm 2009/01/21 06:02:21 1.113 +++ AnyEvent/lib/AnyEvent/Handle.pm 2009/02/10 14:07:43 1.116 @@ -769,6 +769,8 @@ } while () { + $self->{rbuf} .= delete $self->{_tls_rbuf} if exists $self->{_tls_rbuf}; + my $len = length $self->{rbuf}; if (my $cb = shift @{ $self->{_queue} }) { @@ -1190,10 +1192,11 @@ $json->incr_text = ""; $self->_error (&Errno::EBADMSG); - () + () } else { $self->{rbuf} = ""; + () } } @@ -1344,7 +1347,7 @@ &_freetls; } - $self->{rbuf} .= $tmp; + $self->{_tls_rbuf} .= $tmp; $self->_drain_rbuf unless $self->{_in_drain}; $self->{tls} or return; # tls session might have gone away in callback } @@ -1354,7 +1357,7 @@ if ($tmp != Net::SSLeay::ERROR_WANT_READ ()) { if ($tmp == Net::SSLeay::ERROR_SYSCALL ()) { return $self->_error ($!, 1); - } elsif ($tmp == Net::SSLeay::ERROR_SSL ()) { + } elsif ($tmp == Net::SSLeay::ERROR_SSL ()) { return $self->_error (&Errno::EIO, 1); }