Skip to content

Commit

Permalink
use a server argument
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Jan 12, 2017
1 parent 47ef225 commit 61c04d8
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
4 changes: 2 additions & 2 deletions lib/Mojo/IOLoop/Server.pm
Expand Up @@ -100,14 +100,14 @@ sub _accept {
= Mojo::IOLoop::TLS->new(reactor => $self->reactor);
weaken $tls->{reactor};
$tls->on(
negotiated => sub {
finish => sub {
my $handle = pop;
delete $self->{handles}{$id};
$self->emit(accept => $handle);
}
);
$tls->on(error => sub { delete $self->{handles}{$id} });
$tls->negotiate(%$args, handle => $handle);
$tls->negotiate(%$args, handle => $handle, server => 1);
}
}

Expand Down
12 changes: 7 additions & 5 deletions lib/Mojo/IOLoop/TLS.pm
Expand Up @@ -49,15 +49,17 @@ sub negotiate {

my $handle = $args->{handle};
return $self->emit(error => "TLS upgrade failed: $IO::Socket::SSL::SSL_ERROR")
unless IO::Socket::SSL->start_SSL($handle, %$tls, SSL_server => 1);
$self->reactor->io($self->{handle} = $handle => sub { $self->_tls($handle) });
unless IO::Socket::SSL->start_SSL($handle, %$tls,
SSL_server => $args->{server});
$self->reactor->io($self->{handle}
= $handle => sub { $self->_tls($handle, $args->{server}) });
}

sub _tls {
my ($self, $handle) = @_;
my ($self, $handle, $server) = @_;

return $self->emit(negotiated => delete $self->{handle})
if $handle->accept_SSL;
return $self->emit(finish => delete $self->{handle})
if $server ? $handle->accept_SSL : $handle->connect_SSL;

# Switch between reading and writing
my $err = $IO::Socket::SSL::SSL_ERROR;
Expand Down

0 comments on commit 61c04d8

Please sign in to comment.