Captive-Portal
view release on metacpan or search on metacpan
lib/Captive/Portal/TestServer.pm view on Meta::CPAN
use CGI qw();
sub new {
my ($class, $ssl) = @_;
my $self = $class->SUPER::new();
# build accept_hook on demand for SSL request
# see perldoc HTTP::Server::Simple and below for the hook definition
if ($ssl) {
require IO::Socket::SSL;
#IO::Socket::SSL->import('debug3');
{
no strict 'refs';
*{ __PACKAGE__ . '::accept_hook' } = \&_ssl_accept_hook;
}
}
return $self;
}
lib/Captive/Portal/TestServer.pm view on Meta::CPAN
# private methods
sub _ssl_accept_hook {
my $self = shift;
my $fh = $self->stdio_handle;
$self->SUPER::accept_hook(@_);
my $newfh = IO::Socket::SSL->start_SSL(
$fh,
SSL_server => 1,
SSL_cert_file => './etc/test-cert.pem',
SSL_key_file => './etc/test-priv-key.pem',
)
or die "problem setting up SSL socket: "
. IO::Socket::SSL::errstr();
if ($newfh) {
# help HTTP::Server::Simple::CGI with ENV setup()
$ENV{HTTPS} = 'on';
# switch to ssl-ified fh
$self->stdio_handle($newfh);
}
}
( run in 1.084 second using v1.01-cache-2.11-cpan-4d50c553e7e )