--- AnyEvent/lib/AnyEvent/Handle.pm 2008/10/01 14:49:23 1.93 +++ AnyEvent/lib/AnyEvent/Handle.pm 2008/10/01 15:50:33 1.94 @@ -297,10 +297,8 @@ AnyEvent::Util::fh_nonblocking $self->{fh}, 1; - if ($self->{tls}) { - require Net::SSLeay; - $self->starttls (delete $self->{tls}, delete $self->{tls_ctx}); - } + $self->starttls (delete $self->{tls}, delete $self->{tls_ctx}) + if $self->{tls}; $self->{_activity} = AnyEvent->now; $self->_timeout; @@ -1377,6 +1375,8 @@ sub starttls { my ($self, $ssl, $ctx) = @_; + require Net::SSLeay; + Carp::croak "it is an error to call starttls more than once on an Anyevent::Handle object" if $self->{tls}; @@ -1428,7 +1428,7 @@ my ($self) = @_; if ($self->{tls}) { - Net::SSLeay::shutdown $self->{tls}; + Net::SSLeay::shutdown ($self->{tls}); &_dotls;