Security Advisories (1)
CVE-2010-3438 (2019-11-12)

libpoe-component-irc-perl before v6.32 does not remove carriage returns and line feeds. This can be used to execute arbitrary IRC commands by passing an argument such as \"some text\\rQUIT\" to the 'privmsg' handler, which would cause the client to disconnect from the server.

NAME

POE::Component::IRC::Plugin::BotAddressed - A PoCo-IRC plugin that generates events when you are addressed

SYNOPSIS

use POE::Component::IRC::Plugin::BotAddressed;

$irc->plugin_add( 'BotAddressed', POE::Component::IRC::Plugin::BotAddressed->new() );

sub irc_bot_addressed {
    my ($kernel, $heap) = @_[KERNEL, HEAP];
    my $nick = ( split /!/, $_[ARG0] )[0];
    my $channel = $_[ARG1]->[0];
    my $what = $_[ARG2];

    print "$nick addressed me in channel $channel with the message '$what'\n";
}

sub irc_bot_mentioned {
    my ($nick) = ( split /!/, $_[ARG0] )[0];
    my ($channel) = $_[ARG1]->[0];
    my ($what) = $_[ARG2];

    print "$nick mentioned my name in channel $channel with the message '$what'\n";
}

DESCRIPTION

POE::Component::IRC::Plugin::BotAddressed is a POE::Component::IRC plugin. It watches for public channel traffic (i.e. irc_public and irc_ctcp_action) and will generate an irc_bot_addressed, irc_bot_mentioned or irc_bot_mentioned_action event if its name comes up in channel discussion.

METHODS

new

One optional argument:

'eat', set to true to make the plugin eat the irc_public / irc_ctcp_action event and only generate an appropriate event, default is false.

Returns a plugin object suitable for feeding to POE::Component::IRC's plugin_add method.

OUTPUT

irc_bot_addressed

Has the same parameters passed as irc_ctcp_public. ARG2 contains the message with the addressed nickname removed, ie. Assuming that your bot is called LameBOT, and someone says 'LameBOT: dance for me', you will actually get 'dance for me'.

irc_bot_mentioned

Has the same parameters passed as irc_public.

irc_bot_mentioned_action

Has the same parameters passed as irc_ctcp_action.

AUTHOR

Chris 'BinGOs' Williams <chris@bingosnet.co.uk>