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.218 by root, Thu Feb 24 12:04:20 2011 UTC vs.
Revision 1.219 by root, Mon Jul 18 01:19:43 2011 UTC

2010 Net::SSLeay::CTX_set_mode ($tls, 1|2); 2010 Net::SSLeay::CTX_set_mode ($tls, 1|2);
2011 2011
2012 $self->{_rbio} = Net::SSLeay::BIO_new (Net::SSLeay::BIO_s_mem ()); 2012 $self->{_rbio} = Net::SSLeay::BIO_new (Net::SSLeay::BIO_s_mem ());
2013 $self->{_wbio} = Net::SSLeay::BIO_new (Net::SSLeay::BIO_s_mem ()); 2013 $self->{_wbio} = Net::SSLeay::BIO_new (Net::SSLeay::BIO_s_mem ());
2014 2014
2015 Net::SSLeay::BIO_write ($self->{_rbio}, delete $self->{rbuf}); 2015 Net::SSLeay::BIO_write ($self->{_rbio}, $self->{rbuf});
2016 $self->{rbuf} = "";
2016 2017
2017 Net::SSLeay::set_bio ($tls, $self->{_rbio}, $self->{_wbio}); 2018 Net::SSLeay::set_bio ($tls, $self->{_rbio}, $self->{_wbio});
2018 2019
2019 $self->{_on_starttls} = sub { $_[0]{on_starttls}(@_) } 2020 $self->{_on_starttls} = sub { $_[0]{on_starttls}(@_) }
2020 if $self->{on_starttls}; 2021 if $self->{on_starttls};
2305 $handle->on_eof (undef); 2306 $handle->on_eof (undef);
2306 $handle->on_error (sub { 2307 $handle->on_error (sub {
2307 my $data = delete $_[0]{rbuf}; 2308 my $data = delete $_[0]{rbuf};
2308 }); 2309 });
2309 2310
2311Note that this example removes the C<rbuf> member from the handle object,
2312which is not normally allowed by the API. It is expressly permitted in
2313this case only, as the handle object needs to be destroyed afterwards.
2314
2310The reason to use C<on_error> is that TCP connections, due to latencies 2315The reason to use C<on_error> is that TCP connections, due to latencies
2311and packets loss, might get closed quite violently with an error, when in 2316and packets loss, might get closed quite violently with an error, when in
2312fact all data has been received. 2317fact all data has been received.
2313 2318
2314It is usually better to use acknowledgements when transferring data, 2319It is usually better to use acknowledgements when transferring data,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines