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 )