App-TLSMe
view release on metacpan or search on metacpan
tlive/http-headers.t view on Meta::CPAN
my $request = '';
tcp_server $backend_host, $backend_port, sub {
my ($fh, $host, $port) = @_;
my $handle;
$handle = AnyEvent::Handle->new(
fh => $fh,
on_read => sub {
$handle->push_read(
sub {
$request .= $_[0]->rbuf;
if ($request) {
$handle->push_write("200 OK\015\012");
undef $handle;
}
}
);
}
);
};
my $null = '';
open my $fh, '>', \$null;
my $tlsme = App::TLSMe->new(
logger => App::TLSMe::Logger->new(fh => $fh),
cert_file => 'tlive/cert',
key_file => 'tlive/key',
listen => "$host:$port",
backend => "$backend_host:$backend_port"
);
my $handle;
$handle = AnyEvent::Handle->new(
connect => [$host, $port],
tls => "connect",
tls_ctx => {},
on_read => sub {
my ($handle) = @_;
$handle->push_read(line => sub { });
},
on_error => sub {
$tlsme->stop;
},
on_eof => sub {
$tlsme->stop;
}
);
$handle->push_write(<<"EOF");
GET / HTTP/1.1
EOF
$tlsme->run;
$request =~ s/\r|\n//g;
is($request,
'GET / HTTP/1.1X-Forwarded-For: 127.0.0.1X-Forwarded-Proto: https');
done_testing;
( run in 1.082 second using v1.01-cache-2.11-cpan-39bf76dae61 )