… | |
… | |
450 | delete $self->{_skip_drain_rbuf}; |
450 | delete $self->{_skip_drain_rbuf}; |
451 | $self->_start; |
451 | $self->_start; |
452 | |
452 | |
453 | $self->{on_connect} |
453 | $self->{on_connect} |
454 | and $self->{on_connect}($self, $host, $port, sub { |
454 | and $self->{on_connect}($self, $host, $port, sub { |
455 | delete @$self{qw(fh _tw _ww _rw _eof _queue rbuf _wbuf tls _tls_rbuf _tls_wbuf)}; |
455 | delete @$self{qw(fh _tw _rtw _wtw _ww _rw _eof _queue rbuf _wbuf tls _tls_rbuf _tls_wbuf)}; |
456 | $self->{_skip_drain_rbuf} = 1; |
456 | $self->{_skip_drain_rbuf} = 1; |
457 | &$retry; |
457 | &$retry; |
458 | }); |
458 | }); |
459 | |
459 | |
460 | } else { |
460 | } else { |
… | |
… | |
506 | $self->start_read |
506 | $self->start_read |
507 | if $self->{on_read} || @{ $self->{_queue} }; |
507 | if $self->{on_read} || @{ $self->{_queue} }; |
508 | |
508 | |
509 | $self->_drain_wbuf; |
509 | $self->_drain_wbuf; |
510 | } |
510 | } |
511 | |
|
|
512 | #sub _shutdown { |
|
|
513 | # my ($self) = @_; |
|
|
514 | # |
|
|
515 | # delete @$self{qw(_tw _rw _ww fh wbuf on_read _queue)}; |
|
|
516 | # $self->{_eof} = 1; # tell starttls et. al to stop trying |
|
|
517 | # |
|
|
518 | # &_freetls; |
|
|
519 | #} |
|
|
520 | |
511 | |
521 | sub _error { |
512 | sub _error { |
522 | my ($self, $errno, $fatal, $message) = @_; |
513 | my ($self, $errno, $fatal, $message) = @_; |
523 | |
514 | |
524 | $! = $errno; |
515 | $! = $errno; |