Rechercher une page de manuel
POE::Component::IRC::Plugin::Proxy.3pm
Langue: en
Version: 2010-06-21 (ubuntu - 24/10/10)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAME
POE::Component::IRC::Plugin::Proxy - A PoCo-IRC plugin that provides a lightweight IRC proxy/bouncerSYNOPSIS
use strict; use warnings; use POE qw(Component::IRC::State Component::IRC::Plugin::Proxy Component::IRC::Plugin::Connector); my $irc = POE::Component::IRC::State->spawn(); POE::Session->create( package_states => [ main => [ qw(_start) ], ], heap => { irc => $irc }, ); $poe_kernel->run(); sub _start { my ($kernel, $heap) = @_[KERNEL, HEAP]; $heap->{irc}->yield( register => 'all' ); $heap->{proxy} = POE::Component::IRC::Plugin::Proxy->new( bindport => 6969, password => "m00m00" ); $heap->{irc}->plugin_add( 'Connector' => POE::Component::IRC::Plugin::Connector->new() ); $heap->{irc}->plugin_add( 'Proxy' => $heap->{proxy} ); $heap->{irc}->yield ( connect => { Nick => 'testbot', Server => 'someserver.com' } ); return; }
DESCRIPTION
POE::Component::IRC::Plugin::Proxy is a POE::Component::IRC plugin that provides lightweight IRC proxy/bouncer server to your POE::Component::IRC bots. It enables multiple IRC clients to be hidden behind a single IRC client-server connection.Spawn a POE::Component::IRC::State session and add in a POE::Component::IRC::Plugin::Proxy plugin object, specifying a bindport and a password the connecting IRC clients have to use. When the component is connected to an IRC network a listening port is opened by the plugin for multiple IRC clients to connect.
Neat, huh? >;o)
This plugin will activate POE::Component::IRC's raw events ("irc_raw") by calling "$irc->raw_events(1)".
This plugin requires the IRC component to be POE::Component::IRC::State or a subclass thereof.
METHODS
new
Takes a number of arguments:'password', the password to require from connecting clients;
'bindaddress', a local address to bind the listener to, default is 'localhost';
'bindport', what port to bind to, default is 0, ie. randomly allocated by OS;
Returns an object suitable for passing to POE::Component::IRC's "plugin_add" method.
getsockname
Takes no arguments. Accesses the listeners "getsockname" method. See POE::Wheel::SocketFactory for details of the return value;list_wheels
Takes no arguments. Returns a list of wheel ids of the current connected clients.wheel_info
Takes one parameter, a wheel ID to query. Returns undef if an invalid wheel id is passed. In a scalar context returns the time that the client connected in unix time. In a list context returns a list consisting of the peer address, port, tthe connect time and the lag in seconds for that connection.OUTPUT
The plugin emits the following POE::Component::IRC events:irc_proxy_up
Emitted when the listener is successfully started. "ARG0" is the result of the listener "getsockname".irc_proxy_connect
Emitted when a client connects to the listener. "ARG0" is the wheel ID of the client.irc_proxy_rw_fail
Emitted when the POE::Wheel::ReadWrite fails on a connection. "ARG0" is the wheel ID of the client.irc_proxy_authed
Emitted when a connecting client successfully negotiates an IRC session with the plugin. "ARG0" is the wheel ID of the client.irc_proxy_close
Emitted when a connected client disconnects. "ARG0" is the wheel ID of the client.irc_proxy_down
Emitted when the listener is successfully shutdown. "ARG0" is the result of the listener "getsockname".QUIRKS
Connecting IRC clients will not be able to change nickname. This is a feature.AUTHOR
Chris 'BinGOs' WilliamsSEE ALSO
POE::Component::IRCPOE::Component::IRC::State
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre