MojoX-IOLoop-Server-StartTLS

 view release on metacpan or  search on metacpan

lib/MojoX/IOLoop/Server/StartTLS.pm  view on Meta::CPAN

package MojoX::IOLoop::Server::StartTLS;

use IO::Socket::SSL;

# We'll use the version of Mojolicious this was written against
# but we'll add two digits for flexibility
our $VERSION = '5.1401';

use File::Basename 'dirname';
use File::Spec::Functions 'catfile';
our $CERT = catfile dirname(__FILE__), 'server.crt';
our $KEY  = catfile dirname(__FILE__), 'server.key';

#------------------------------------------------------------------------------

sub start_tls {
	my ($server, $stream, $options, $callback) = @_;

	$stream->on(drain => sub {
		my $handle = $stream->steal_handle;

		$stream->handle(IO::Socket::SSL->start_SSL($handle, 
			# Useful defaults
			SSL_cert_file => $CERT,
			SSL_cipher_list => '!aNULL:!eNULL:!EXPORT:!DSS:!DES:!SSLv2:!LOW:RC4-SHA:RC4-MD5:ALL',
			SSL_honor_cipher_order => 1,
			SSL_key_file => $KEY,
			SSL_startHandshake => 0,
			SSL_verify_mode => 0x00,
			SSL_server => 1,
			SSL_error_trap => sub {
				return unless $handle = delete $server->{handles}{$handle};



( run in 0.492 second using v1.01-cache-2.11-cpan-4d50c553e7e )