ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent/Handle.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent/Handle.pm (file contents):
Revision 1.113 by root, Wed Jan 21 06:02:21 2009 UTC vs.
Revision 1.116 by root, Tue Feb 10 14:07:43 2009 UTC

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};
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}) {
1188 1190
1189 $self->{rbuf} = $json->incr_text; 1191 $self->{rbuf} = $json->incr_text;
1190 $json->incr_text = ""; 1192 $json->incr_text = "";
1191 1193
1192 $self->_error (&Errno::EBADMSG); 1194 $self->_error (&Errno::EBADMSG);
1195
1193 () 1196 ()
1194
1195 } else { 1197 } else {
1196 $self->{rbuf} = ""; 1198 $self->{rbuf} = "";
1199
1197 () 1200 ()
1198 } 1201 }
1199 } 1202 }
1200}; 1203};
1201 1204
1342 delete $self->{_rw}; 1345 delete $self->{_rw};
1343 $self->{_eof} = 1; 1346 $self->{_eof} = 1;
1344 &_freetls; 1347 &_freetls;
1345 } 1348 }
1346 1349
1347 $self->{rbuf} .= $tmp; 1350 $self->{_tls_rbuf} .= $tmp;
1348 $self->_drain_rbuf unless $self->{_in_drain}; 1351 $self->_drain_rbuf unless $self->{_in_drain};
1349 $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
1350 } 1353 }
1351 1354
1352 $tmp = Net::SSLeay::get_error ($self->{tls}, -1); 1355 $tmp = Net::SSLeay::get_error ($self->{tls}, -1);
1353 1356
1354 if ($tmp != Net::SSLeay::ERROR_WANT_READ ()) { 1357 if ($tmp != Net::SSLeay::ERROR_WANT_READ ()) {
1355 if ($tmp == Net::SSLeay::ERROR_SYSCALL ()) { 1358 if ($tmp == Net::SSLeay::ERROR_SYSCALL ()) {
1356 return $self->_error ($!, 1); 1359 return $self->_error ($!, 1);
1357 } elsif ($tmp == Net::SSLeay::ERROR_SSL ()) { 1360 } elsif ($tmp == Net::SSLeay::ERROR_SSL ()) {
1358 return $self->_error (&Errno::EIO, 1); 1361 return $self->_error (&Errno::EIO, 1);
1359 } 1362 }
1360 1363
1361 # all other errors are fine for our purposes 1364 # all other errors are fine for our purposes
1362 } 1365 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines