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::Qnet::State - a fully event-driven IRC client module for Quakenet, with nickname and channel tracking from POE::Component::IRC::State.

SYNOPSIS

  use POE::Component::IRC::Qnet::State;

  # Do this when you create your sessions. 'my client' is just a
  # kernel alias to christen the new IRC connection with.
  my ($object) = POE::Component::IRC::Qnet::State->new('my client') or die "Oh noooo! $!";

  # Do stuff like this from within your sessions. This line tells the
  # connection named "my client" to send your session the following
  # events when they happen.
  $kernel->post('my client', 'register', qw(connected msg public cdcc cping));
  # You can guess what this line does.
  $kernel->post('my client', 'connect',
	        { Nick     => 'Boolahman',
		  Server   => 'irc-w.primenet.com',
		  Port     => 6669,
		  Username => 'quetzal',
		  Ircname  => 'Ask me about my colon!', } );

DESCRIPTION

POE::Component::IRC::Qnet::State is an extension to POE::Component::IRC::Qnet specifically for use on Quakenet http://www.quakenet.org/, which includes the nickname and channel tracking from POE::Component::IRC::State. See the documentation for POE::Component::IRC::Qnet and POE::Component::IRC::State for general usage. This document covers the extensions.

METHODS

is_nick_authed

Expects a nickname as parameter. Will return that users authname ( account ) if that nick is in the state and have authed with Q. Returns undef if the user is not authed or the nick doesn't exist in the state.

nick_info

Expects a nickname. Returns a hashref containing similar information to that returned by WHOIS. Returns an undef if the nickname doesn't exist in the state. The hashref contains the following keys: 'Nick', 'User', 'Host', 'Se rver', 'Auth', if authed, and, if applicable, 'IRCop'.

OUTPUT

This module returns one additional event over and above the usual events:

irc_nick_authed

Sent when the component detects that a user has authed with Q. Due to the mechanics of Quakenet you will usually only receive this if an unauthed user joins a channel, then at some later point auths with Q. The component 'detects' the auth by seeing if Q or L decides to +v or +o the user. Klunky? Indeed. But it is the only way to do it, unfortunately.

CAVEATS

Like POE::Component::IRC::State this component registers itself for a number of events. The main difference with POE::Component::IRC::State is that it uses an extended form of 'WHO' supported by the Quakenet ircd, asuka. This WHO returns a different numeric reply than the original WHO, namely, 'irc_354'. Also, due to the way Quakenet is configured all users will appear to be on the server '*.quakenet.org'.

BUGS

A few have turned up in the past and they are sure to again. Please use http://rt.cpan.org/ to report any. Alternatively, email the current maintainer.

AUTHOR

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

Based on the original POE::Component::IRC by:

Dennis Taylor, <dennis@funkplanet.com>

SEE ALSO

POE::Component::IRC POE::Component::IRC::State POE::Component::IRC::Qnet http://www.quakenet.org/