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::Cookbook::Disconnecting - How to disconnect gracefully with PoCo-IRC

DESCRIPTION

Shutting down an IRC bot can be quick and messy, or slow and graceful.

SYNOPSIS

There are two ways you can shut down an IRC bot/client. The quick and dirty way is rather simple:

exit;

It exits the program, shutting down the socket, and everybody online sees yet another "Connection reset by peer" or "Remote end closed the socket" or something.

There's a little dance you can do to send a quit message and log out gracefully. It goes like this:

  • Send the QUIT command to the IRC server, with your quit message.

  • Wait for irc_disconnected to come back.

  • Unregister all events. This is like the register => 'all' you probably posted near the connect command, but replace register with unregister. Once POE::Component::IRC knows your session isn't interested, it lets you go and things shut down.

AUTHOR

Rocco Caputo (I think). PODified by Hinrik Örn Sigurðsson.