NAME
POE::Component::CPAN::Mirror::Multiplexer - Multiplex HTTP CPAN mirrors
SYNOPSIS
use strict;
use warnings;
use Getopt::Long;
use POE qw(Component::CPAN::Mirror::Multiplexer);
my $port = 8080;
GetOptions('port=i',\$port) or die;
my $test_httpd = POE::Component::CPAN::Mirror::Multiplexer->new( port => $port );
$poe_kernel->run();
exit 0;
DESCRIPTION
POE::Component::CPAN::Mirror::Multiplexer is a POE component that acts as a HTTP server that multiplexes HTTP CPAN mirrors. CPAN clients such as CPAN or CPANPLUS can be configured to use the multiplexer as their CPAN mirror. The multiplexer will then query a list of HTTP CPAN mirrors for the requested URLs.
CONSTRUCTOR
spawn
-
Takes a number of options, only those marked as
mandatory
are required:'address', bind to a particular IP address, default is INADDR_ANY; 'port', bind to a particular TCP port, default is 0; 'event', an event in your session to send request meta to; 'session', specify an alternative session to send the above event to; 'postback', specify a POE::Session postback instead of the above; 'mirrors', an arrayref of http urls, the default should be fine; 'error_page', a scalar of HTML to be returned instead of the default on error conditions;
METHODS
get_session_id
-
Returns the POE::Session ID of the component.
port
-
Returns the assigned TCP port.
INPUT EVENTS
shutdown
-
Terminates the component.
OUTPUT EVENTS
If event
or postback
is specified in spawn
then the following events will be emitted whenever a client makes a request.
event
-
ARG0
will be a HTTP::Request object.ARG1
will be a HASHREF with the following keys:'peeraddr', the client address; 'peerport', the client TCP port; 'sockaddr', our address; 'sockport', our TCP port;
postback
-
ARG0
will be an ARRAYREF with the parameters that were specified when the postback was created, see POE::Session for details.ARG1
will be an ARRAYREF with two items, a HTTP::Request object and a HASHREF with the following keys:'peeraddr', the client address; 'peerport', the client TCP port; 'sockaddr', our address; 'sockport', our TCP port;
AUTHOR
Chris BinGOs
Williams <chris@bingosnet.co.uk>
LICENSE
Copyright © Chris Williams
This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details.