… | |
… | |
767 | ) { |
767 | ) { |
768 | $self->_error (&Errno::ENOSPC, 1), return; |
768 | $self->_error (&Errno::ENOSPC, 1), return; |
769 | } |
769 | } |
770 | |
770 | |
771 | while () { |
771 | while () { |
|
|
772 | $self->{rbuf} .= delete $self->{tls_rbuf} if exists $self->{tls_rbuf};#d# |
|
|
773 | |
772 | my $len = length $self->{rbuf}; |
774 | my $len = length $self->{rbuf}; |
773 | |
775 | |
774 | if (my $cb = shift @{ $self->{_queue} }) { |
776 | if (my $cb = shift @{ $self->{_queue} }) { |
775 | unless ($cb->($self)) { |
777 | unless ($cb->($self)) { |
776 | if ($self->{_eof}) { |
778 | if ($self->{_eof}) { |
… | |
… | |
1343 | delete $self->{_rw}; |
1345 | delete $self->{_rw}; |
1344 | $self->{_eof} = 1; |
1346 | $self->{_eof} = 1; |
1345 | &_freetls; |
1347 | &_freetls; |
1346 | } |
1348 | } |
1347 | |
1349 | |
1348 | $self->{rbuf} .= $tmp; |
1350 | $self->{tls_rbuf} .= $tmp;#d# |
1349 | $self->_drain_rbuf unless $self->{_in_drain}; |
1351 | $self->_drain_rbuf unless $self->{_in_drain}; |
1350 | $self->{tls} or return; # tls session might have gone away in callback |
1352 | $self->{tls} or return; # tls session might have gone away in callback |
1351 | } |
1353 | } |
1352 | |
1354 | |
1353 | $tmp = Net::SSLeay::get_error ($self->{tls}, -1); |
1355 | $tmp = Net::SSLeay::get_error ($self->{tls}, -1); |