Revision history for Perl extension POE::Component::IRC.

5.80
    - CycleEmpty.pm: Renamed cycling() to is_cycling() (Hinrik)
    - IRC.pm: Documented the squit command (Hinrik)
    - Only test ziplinks given a proper version of *Zlib::Stream (Hinrik)
    - DCC.pm: Implemented DCC RESUME support (Hinrik)
    - Cleaned up and reorganized the test suite (Hinrik)
    - IRC.pm: Added SERVLIST and SQUERY commands. Should include
      everything from RFC2812 now. (Hinrik)
    - Fixed a bug in Proxy plugin (bingos)

5.78  Fri May 30 08:03:30 BST 2008
    - Logger.pm: Fix the PART thing properly (Hinrik)
    - README: A few updates (Hinrik)
    - Proxy.pm: Fixed a small bug (Hinrik)
    - Common.pm: Fixed the docs for matches_mask_array() and
      allow it to be exported (Hinrik)
    - IRC.pm et al: Improved some warning messages (Hinrik)
    - IRC.pm: Moved DCC support to a plugin (Hinrik)
    - IRC.pm: Improved the docs some. Better index and more links. (Hinrik)
    - The plugin system now uses POE::Component::Pluggable (Hinrik)

5.76  Thu Apr 24 15:05:05 GMT 2008
    - Logger.pm: Fixed serious typo in function name. Grr. (Hinrik)
    - Logger.pm: Handle PARTs correctly when there's no colon (Hinrik)
    - State.pm: Only WHO users once even if they join many chans (Hinrik)
    - State.pm: Added channel_creation_time() method (Hinrik)
    - State.pm: Made channel_modes() return mode arguments as well (Hinrik)
    - State.pm: Add is_channel_synced() (Hinrik)
    - PlugMan.pm - bug in new() spotted by plu (bingos)

5.74  Thu Apr 03 15:14:04 GMT 2008 
    - Logger.pm: Do charset conversion on everything, not just messages. This
      should handle non-ASCII channel names and nicknames on servers that
      support such things (Hinrik)
    - Logger.pm: Allow custom formats to provide their own timestamp in the
      topic_set_by handler (Hinrik)

5.72  Fri Mar 21 10:33:59 GMT 2008
    - Compat.pm: Fixed a bug that caused a warning (Hinrik)
    - Patch applied from Somni [RT #33850] (bingos)
    - Fixes to two of the tests that were causing intermitent fails (bingos)
    - Logger.pm: Make logging work again :) (Hinrik)
    - Logger.pm: Fix topic_change log string (Hinrik)
    - State.pm: Document new AwayPoll behavior correctly (Hinrik)
    - Moved author tests to xt/ Module::Install::AuthorTests is now 
      required by maintainers. (bingos)

5.70  Mon Mar 03 10:51:01 GMT 2008
    - BotAddressed.pm: Fixed a small bug (Hinrik)
    - BotCommand.pm: A new plugin for handling bot commands (Hinrik)
    - IRC.pm: Shorten protocol lines that are too long, make the maximum length
      configurable. (Hinrik)
    - Amended IRC::Compat to do CTCP parsing. Amended dependent modules. (bingos)
    - Logger.pm: Use File::Spec for cross-platform file/dir creation. (Hinrik)
    - Make CTCP plugin respond to SOURCE requests (Hinrik)
    - Added a Cookbook (Hinrik)
    - State.pm: Save user hop count from WHO replies (Hinrik)
    - Connector.pm: Added support for multiple servers (Hinrik)
    - IRC.pm: Improved dcc_resume documentation, moved some others things
      around in the docs (Hinrik)
    - Added Hinrik to the maintainers list in IRC.pm (bingos)

5.68  Wed Feb 20 19:49:58 GMT 2008
    - IRC.pm: Improved the docs a little, fixed an error in the
      SYNOPSIS and moved half of it to an example file. Should be
      less daunting now :) (Hinrik)
    - State.pm: Lengthen away status polling time to 5 minutes and
      make the feature optional. (Hinrik)
    - Common.pm: Improved mIRC color handling code/documentation (Hinrik)

5.66  Mon Feb 18 21:58:48 GMT 2008
    - Removed Filter::IRC in favor of Filter::IRC::Compat (Hinrik)
    - Filter/CTCP.pm: Support filenames with spaces in DCCs (Hinrik)
    - IRC.pm: Always doube-quote sent DCC files for safety (Hinrik)
    - Compat.pm: Propagate debug flag to internal CTCP filter (Hinrik)
    - Updated t/perlcriticrc to exlude a few more policies (Hinrik)
    - Cleaned up all code and documentation. The changes include:
      everything needed to satisfy Perl::Critic, use carp/croak
      instead of warn/die where appropriate, use 4-column indents,
      use consistent coding style everywhere, some refactoring here
      and there... (Hinrik)
    - put Filter::IRC back. It is now a Stackable/IRCD/Compat 
      mash-up (bingos)
    - full regression testing in 1_filter_compat.t yippee. (bingos)

5.64  Sat Feb 16 07:55:34 GMT 2008
    - Logger.pm: Fix regression regarding utf8 detection (Hinrik)
    - Logger.pm: Don't log channel modes which have different meanings
      depending on the IRC network we're on. (Hinrik)
    - NickServID: Tweak it a little (Hinrik)
    - Add optional Test::Perl::Critic test to detect risky code.
      Currently 466 violations in about 16k lines of code, whee! (Hinrik)
    - ISupport.pm: Fix bug in CHANLIMIT handling (Hinrik)
    - Logger.pm: Missing S_001 return value (Hinrik)
    - Compat.pm: Fix missing raw_line (Hinrik)
    - Filter/CTCP.pm: Stop using POE::Filter::IRC (Hinrik)

5.62  Thu Feb  7 16:31:03 GMT 2008
    - IRC.pm: Document the nickserv command (Hinrik)
    - Common.pm: Show some example usage of has_color() (Hinrik)
    - CycleEmpty.pm: New plugin to cycle empty channels in order to
      gain channel operator status (Hinrik)
    - Common.pm: Add more color/formatting codes (Hinrik)
    - Added plugin test for CycleEmpty (BinGOs)

5.60  Wed Feb  6 13:38:50 GMT 2008
    - State.pm: Improved the away tracking code (Hinrik)
    - Logger.pm: Added missing argument preventing quit messages from
      being logged (Hinrik)
    - NickReclaim: Fixed regression introduced in 5.58 (Hinrik)
    - BotTraffic.pm: irc_bot_ctcp_action => irc_bot_action, to be
      consistent with BotAddressed.pm (Hinrik)
    - AutoJoin.pm: Delay autojoin if NickServID is loaded, so the user
      will be cloaked (if applicable) before joining channels (Hinrik)
    - Common.pm: Add constants and methods for dealing with colors
      and formatting (Hinrik)
    - IRC.pm: Add NICKSERV command, mention the new color stuff (Hinrik)
    - NickServID: Made it behave more sensibly considering upcoming
      FreeNode policy changes. Also, use a raw NICKSERV command (Hinrik)
    - Logger.pm: Rename SortByDate to Sort_by_date and add Strip_color,
      Strip_formatting (Hinrik)

5.58  Mon Feb  4 07:58:14 GMT 2008
    - State.pm: Workaround for IRC servers (e.g. hybrid, hyperion) which send
      user WHO replies starting with the name of a random channel that the
      user is on (which the component might not be on) instead of '*' (Hinrik)
    - State.pm: Track the away status of channel users and send an event if
      the status changes (Hinrik)
    - Projects.pm: Some additions and cleanup (Hinrik)
    - Logger.pm: Add 'Restricted' argument for restricting read permissions
      of created files/dirs (Hinrik)
    - Logger.pm: Add 'Format' argument for specifying a custom log format (Hinrik)
    - Logger.pm: Close log files after writing to them (Hinrik)
    - Logger.pm: Omit date from timestamp if sorting log files by date (Hinrik)
    - Logger.pm: Always use present tense (Hinrik)
    - NickReclaim.pm: Small fix for an edge case (Hinrik)
    - BotAddressed.pm: Check for '$nick~ $text' as well (Hinrik)
    - NickServID.pm: Make it work if it's added before connecting (Hinrik)

5.56  Thu Jan 31 12:30:25 GMT 2008
    - AutoJoin.pm: Silence some warnings (Hinrik)
    - Logger.pm: Add SortByDate argument to rotate logs (Hinrik)
    - Logger.pm: output something in English for every channel mode change (Hinrik)
    - Logger.pm: made the ACTION syntax distinct from the MODE syntax
      to allow for sane parsing of log files (Hinrik)
    - Fix bug causing NickReclaim plugin to only try to reclaim once (Hinrik)
    - Fix NICK/QUIT logging in Logger plugin (Hinrik)
    - Minor improvement and documentation update to BotAddressed plugin (Hinrik)

5.54  Sun Jan 27 09:21:27 GMT 2008
    - Hinrik added numerous groovey plugins. Hinrik++

5.52  Mon Jan 14 07:46:01 GMT 2008
    - RT #32279: Filter/CTCP.pm doesn't provide raw_line by Hinrik

5.50  Sun Jan 13 10:19:05 GMT 2008
    - RT #32271 reported by Hinrik
    - RT #32265 is_away() support by Hinrik

5.48  Thu Jan 10 20:13:10 GMT 2008
    - Added plugin FollowTail, a tail following plugin

5.46  Thu Jan  3 15:12:21 GMT 2008
    - 'irc_public' events should now be generated according to ISupport
      information

5.44  Tue Jan  1 13:58:15 GMT 2008
    - Enhancement to part command to handle part messages. RT #32029
      reported by Hinrik

5.42  Mon Dec 31 12:29:50 GMT 2007
    - Amendments to NickReclaim plugin by Zoffix Znet

5.40  Wed Dec 26 10:55:18 GMT 2007
    - Applied a patch from Hinrik to fix umode issues with State.pm

5.38  Thu Dec  6 17:24:23 GMT 2007
    - CPAN Testers reports for dev releases look favourable, bumped for 
      proper release.

5.37_02  Thu Dec  6 08:35:47 GMT 2007
    - Added is_user_mode_set() method and 'irc_user_mode' event

5.37_01  Wed Dec  5 21:11:46 GMT 2007
    - Added umode support to IRC::State

5.36  Thu Nov  1 13:51:02 GMT 2007
    - Updated Module::Install to 0.68

5.34  Wed Jul 25 10:51:45 BST 2007
    - Fixed abstract_from in Makefile.PL.

5.33_01  Tue Jul 10 17:53:01 BST 2007
    - Moved documentation for connect() to spawn();
    - Added CTCP PING to Plugin::CTCP;

5.32  Tue Jun 12 12:20:21 BST 2007
    - Stable release after working around issues on Solaris.

5.31_05  Mon Jun 11 09:57:09 BST 2007
    - Fixed an error in the SYNOPSIS example for Qnet::State;
    - More diagnostics to the ipv6 test to trigger on solaris;

5.31_04  Tue Jun 05 09:29:34 BST 2007
    - More diagnostics to the ipv6 test to trigger on solaris;

5.31_03  Fri Jun 01 10:37:49 BST 2007
    - More diagnostics to the ipv6 test to trigger on solaris;

5.31_02  Thu May 31 16:04:06 BST 2007
    - More diagnostics to the ipv6 test to trigger on solaris;

5.31_01  Fri May 18 10:11:47 BST 2007
    - Added a warning if UseSSL is specified but SSLify wasn't found,
      requested by H.Merijn Brand;
    - Added some diagnostics to the ipv6 test to trigger on solaris;

5.30  Tue May 08 19:25:06 BST 2007
    - Applied a patch from dec for Plugin::Proxy.pm

5.29  Thu May 03 13:01:01 BST 2007
    - 'irc_ctcp' events added by Aankhen``

5.28  Tue May 01 14:50:08 BST 2007
    - Applied a patch from dec to Plugin::Proxy.

5.27  Tue May 01 13:43:39 BST 2007
    - Fixed a serious bug relating to PoCo-Client-DNS use, reported by dec

5.26  Sun Apr 29 15:19:56 BST 2007
    - Fixed a bug relating to PoCo-Client-DNS use, reported by dec

5.25  Sun Apr 29 13:03:07 BST 2007
    - Applied fix for problem with ipv6 support from bsmith
    - Fixed RT #26735 reported by dec

5.24  Mon Apr 16 13:43:36 BST 2007
    - Changed the IPv6 support to only be enabled when 'useipv6'
      is explicitly used.

5.23  Thu Apr 12 16:07:56 BST 2007
    - Added Test::Kwalitee test.
    - Added new IP functions to ::Common
    - IPv6 support for connecting to ipv6 ircds.
    - New IPv6 connect testcase.

5.22  Fri Feb 02 12:02:36 GMT 2007
    - Found a bug in ::State that was causing problems during netsplits.

5.21  Thu Feb 01 12:21:45 GMT 2007
    - More changes to Qnet::State to include AUTH in part/quit/kick
      events. Suggested by helios.

5.20  Wed Jan 31 17:25:31 GMT 2007
    - Finally converted Makefile.PL to full Module::Install-ness.

5.19  Wed Jan 31 11:54:36 GMT 2007
    - Change to ban_mask() method in Qnet::State, suggested by
      helios.

5.18  Fri Dec 29 10:55:05 GMT 2006
    - Documentation fix to ::Plugin by Kinks.
    - Still a problem with TOPIC command. Fixed.

5.17  Tue Dec 12 22:52:48 GMT 2006
    - Serious bug in TOPIC handling spotted. Fixed.

5.16  Wed Dec 06 11:54:08 GMT 2006
    - Refactored the SOCKS code to use $wheel->event() to switch 
      InputEvent. Thanks to dngor for pointing that out.

5.15  Tue Dec 05 19:26:34 GMT 2006
    - Implemented SOCKS4 support. Requested by netmunky @ Efnet. Somni 
      assisted with the design. Thanks!

5.14  Wed Nov 29 10:56:57 GMT 2006
    - Found a serious problem with refcounts in the registration
      code. Fixed with merlyn's help.

5.13  Sun Nov 19 14:20:51 GMT 2006
    - Fixed long standing bug in 'topic' command.

5.12  Thu Nov 16 14:04:51 GMT 2006 'Hairy COO!'
    - Documentation fix for ::Pipeline, spotted by Martijn van Beers.
    - Amended 6_common.t test-case to make sure it covered other edge
      case reported by 'Elvis Dead' via email.
    - Setting a delayed command with delay() generates a 'irc-delay_set'
      event.
    - Added ability to remove delayed commands.

5.11  Wed Oct 25 16:32:03 BST 2006
    - Changed plugin processing so that any poco plugin handlers 
      are now in an eval as well. Pesky edge-cases.
    - Refactored parse_mode_line() to handle dangerous edge cases.

5.10  Tue Oct 24 18:02:46 BST 2006
    - ::State 'irc_kick' event has ARG4 which is the full nick!user@host
      of the kicked person. Suggested by helios.

5.09  Tue Oct 24 14:48:07 BST 2006
    - Forgot a test with the Test::Plugin relocation. Damnit.
    - Reinstated ::Test::Plugin for the PlugMan tests.

5.08  Mon Oct 23 12:35:04 BST 2006
    - Remove ::Test::Plugin and relocated code to the actual test.
    - Removed the optional debug in Pipeline. If there are errors
      you'll see them now.
    - New plugin tests, testing running POE sessions in plugins and
      dying in PCI_register().
    - Deprecated 1_new.t test by removing it.

5.07  Tue Oct 17 11:37:28 BST 2006
    - Enabled plugin_debug effect Pipeline.
    - Added send_event() method for injecting events in the event
      handling system.

5.06  Thu Oct 12 12:45:06 BST 2006
    - Adjusted load() in PlugMan, suggested by Stefan Schwarzkopf.

5.05  Fri Oct 06 14:40:37 BST 2006
    - ISupport documentation fix.
    - Amendments to plugin processing, plugin debugging should be 
      less noisy now. 

5.04  Mon Sep 25 13:30:46 BST 2006
    - Removed Build.PL
    - Applied a patch from Ben Jackson which fixes the proxy 
      support. Yay.

5.03  Sat Sep 16 14:17:01 BST 2006
    - Switched Makefile.PL to using Make::Install. Added Build.PL
    - Fixed META.yml handling.
    - Fixed an unregister bug reported via CPAN::Forum. *sigh*

5.02  Fri Sep 08 16:32:12 BST 2006
    - POE-0.37 has found a serious flaw in the shutdown() handler. Fixed.
    - ::Test::Harness was registering for HUP signal. Stopped that nonsense.

5.01  Thu Sep 07 17:53:00 BST 2006
    - Fixed file permissions in the distribution. Again a CPANTS
      gripe.
    - Fiddled with State's insides.
    - Added find_auth_nicks method to Qnet::State, requested by helios.

5.00  Fri Sep 01 02:20:54 BST 2006 YAPC::EU Birmingham 2006 release
    - Test::Pod::Coverage test added, inspired by CPANTS hackathon,
      cheers, domm.
    - Added use strict to ::Constants.
    - PlugMan plugin will dump $@ when a plugin fails to 'load' now.
    - Documentation fixes to a lot of modules due to Pod::Coverage.

4.99  Tue Aug 29 17:47:04 BST 2006
    - Added resync_chan and resync_nick to Qnet::State subclass, as
      suggested by helios.

4.98  Fri Aug 18 12:30:31 BST 2006
    - Added support for connecting to ircds that support compressed
      links; only PCSI does this afaik, so limited use for most peeps.
    - Applied a patch from dec to fix a bug in ISupport plugin, RT #21058.

4.97  Mon Jul 24 12:46:26 BST 2006
    - Fixed 'sconnect', it should send 'CONNECT' to the ircd
      now instead of 'SCONNECT'.
    - ::State assumed that ircd had returned ISupport info. 
      Set reasonable defaults for ircd's that don't.
    - Changed 'sl' to 'quote' instead as far as the documented
      API.

4.96  Sun Jul 16 14:35:34 BST 2006
    - Fixed a bug in Console plugin.
    - Minor code changes to Proxy plugin.
    - Component will automatically register a parent session 
      if spawned from another session. Added testcase for
      this also.
    - Removed the deprecated IRC_EVTS registration bit from 
      _start as the component uses plugin API stylee handlers now.
    - Tidied up PlugMan plugin code.
    - Updated documentation stipulating that the module is licensed
      the same as perl is.
    - Refactored Whois plugin. Added RPL_WHOISACTUALLY support.

4.95  Wed Jul 05 11:46:34 BST 2006
    - Removed stray Dumper() in IRC.pm.
    - Fixed serious bug in ISupport plugin.

4.94  Sun Jul 02 10:01:45 BST 2006
    - Amended the DNS code to implement round-robin type 
      behaviour.
    - Added POCOIRC_REGISTER and POCOIRC_SHUTDOWN signals
      for multiple registration and shutdown, respectively.
      Added applicable tests to the testsuite.
    - Documentation fixes. Added DIE command.
    - Added multiple bot SYNOPSIS.

4.93  Tue Jun 13 19:25:45 BST 2006
    - ::State, invex & excepts sync'ing when we +[qoah].
    - ::State, documentation fixes.
    - Added 'irc_shutdown' event. 
    - Bug in Qnet::State spotted by helios. Changed 
      inheritance order and cpoied some code from Qnet to
      Qnet::State accordingly.

4.92  Sun Jun 11 18:09:13 BST 2006
    - Added a check to _parseline for spurious blank events,
      reported by dec.
    - Added nick_channel_modes method to ::State to return
      the channel modes (ie. qaohv) of a given nick on a
      given channel - Kinks
    - Added note concerning the issues surrounding the SetAt
      and SetBy values to CAVEATS in the ::State pod - Kinks
    - Improvements to Plugin::PlugMan, it should actually 
      work properly now >:) Thanks to mst and dngor.
    - ::State, nick_sync now has the channel name as ARG1.
    - Moved the INVEX and EXCEPTS sync'ing until we are +o'd,
      created irc_chan_sync_(invex|excepts). irc_chan_sync 
      features the time in seconds taken to sync as ARG1 now.

4.91  Thu Jun 01 21:08:13 BST 2006
    - Tweak to ::State to deal with ircds that don't report @+ 
      status in WHO replies ( like unreal ). Thanks to Kinks
      for reporting that.
    - 'irc_dcc_failed' event was undocumented. Fixed.
    - Switched the poco-client-dns checks to 'use', so as to
      ensure that we only load >= 0.99.
    - Amendments to shutdown so that it sends a quit message
      to the ircd if we are connected.
    - Amended Connector plugin so the lag is collected 
      independent of what the ircd sends us back.
    - Various changes to ::State in order to ensure full RFC
      compliant channel mode support, including support
      for channel access lists - Kinks
    - Added ::State methods to return channel access lists:
      channel_ban_list, channel_invex_list, channel_except_list - Kinks
    - Using 'use' for the dns checks was fubar. Switched back 
      to 'require' and test the VERSION instead.
    - Changed the simpleclient.pl script to accept a filename as
      a second argument to /dump_state command.
    - Documentation tweaks to ::State by Kinks
    - Channel topic support added to ::State. Added the method
      channel_topic to return a hashref of topic data - Kinks
    - Changed 'Time' keys for channel lists and topic to 'SetAt'
    - Added irc_chan_mode event to ::State to allow everyone
      to enjoy the mode parsing State does internally - Kinks
    - Refactored ::Qnet::State subclass after all Kinks' 
      changes to ::State.
    - Refactored ::State slightly to use ARG2 for numerics 
      handlers instead of trying to parse ARG1 ourselves. FTW.

4.90  Mon May 22 13:23:09 BST 2006
    - Missed the Filter::Stackable in plugins Console and Proxy.

4.89  Mon May 22 09:14:57 BST 2006
    - A bug in POE-0.35's Filter::Stackable causing problems with
      ::Test::Harness. Enabled a runaround *sigh*

4.88  Sun May 21 17:57:38 BST 2006
    - Code cleanup in ::Test::Harness. Workaround for systems 
      without %z in strftime, like Solaris.
    - Added matches_mask() function to ::Common. Updated 6_common.t 
      to add applicable tests.
    - Added parse_user() function to ::Common. Updated 6_common.t
      to add applicable tests.
    - new() deprecation warning specifies the module name. Saves
      confusion for people who are using Bot::* modules.
    - Added LUSERS command.
    - Major hackery to remove dependency on PoCo-Client-(DNS|Ident).

4.87  Sat May 06 17:03:34 BST 2006
    - Testsuite 07 and 09 were still skipped on MSWin32. Fixed.
    - Altered BotAddressed at immute's suggestion. Check docs
      for details.
    - Altered Filter::Compat so it won't break with Stackable.
    - Added 'remove' command a Freenode extension.

4.86  Thu Apr 27 21:18:41 BST 2006
    - POD fixes and perl dependency as pointed out by Alias.
    - Tweak so that the poco only shuts down PoCo-Client-DNS
      if we spawned it.
    - Spotted a problem with register() it was still stashing
      POE::Session refs. Bad BinGOs.
    - shutdown() will unregister all registered sessions now.
    - Code audits of State and Qnet::State. Lot's of cleanup.
    - Changed Common.pm u_irc/l_irc to support a casemapping
      argument, one may specify 'rfc1459', 'strict-rfc1459' or
      'ascii'. Default is 'rfc1459'.
    - Changed State and Qnet::State to use casemapping for 
      generating unique state keys.
    - Removed State::Lite. Deprecated.
    - Online test reports the server connected to.

4.85  Thu Apr 13 12:37:49 BST 2006
    - Numerous bug fixes to State and Qnet/State which were 
      causing terminations. Reported by dec.
    - Tweaks to a number of tests.
    - Various plugins have been debugged.
    - Added '/dump_state' command to simpleclient.pl.

4.84  Wed Apr 12 14:24:34 BST 2006
    - Spotted a bug in Filter::CTCP, it wasn't setting raw_line.
    - Bug in dcc code meant DCC tests were failing on certain
      platforms. Fixed.
    - Changes to DCC tests. Rolled back MSWin32 skip checks.
    - Added one more DCC test for testing 'nataddr' option.

4.83  Tue Apr 11 20:45:04 BST 2006
    - Changes to two of the DCC tests. DAMN YOU WINDOWS!

4.82  Tue Apr 11 19:32:45 BST 2006
    - Sorted out Test::Harness, brought it up to PoCo-Server-IRC-0.3
      standard.
    - Added a multiple client test to the testsuite.
    - Added socketerr test to the testsuite.
    - Added subclass test to the testsuite.
    - Added DCC test scripts to the testsuite.
    - Fixed a bug in DCC code for CHAT.
    - Added nick and nick_state tests.
    - Amended processing order in _send_event() so that the 
      poco session can process events *before* the plugins do.
    - Plugin system will automagically check whether the poco
      object has any plugin handlers. These get processed first.
    - Removed the dependency on Date::Format, switched to POSIX::strftime.
    - Applied a patch from ketas for State.pm.
    - Fixes to Pipeline, spotted by dec @ MAGnet.
    - Added resolver() method for accessing the PoCo-Client-DNS object.
    - Refactored State.pm, Qnet.pm and Qnet/State.pm, handlers are all 
      processed by plugin system now. Implemented better inheritance.
    - Expanded the SYNOPSIS sections of Qnet.pm, State.pm and Qnet/State.pm.
    - Added NickReclaim plugin and associated test.

4.81  Fri Mar 31 17:00:38 BST 2006
    - Added PlugMan plugin manager and associated test.
    - Fixed the RFC docs in docs/. Spotted by integral. Thanks.
    - Added session_alias() method as suggested by Chris Thompson.
    - The component's HEAP is now the object. So is retrievable via 
      $_[SENDER]->get_heap() in event handlers. Thanks to CT for the 
      idea. Now why didn't I think of that sooner =[
    - Various fixes to Test::Harness ircd.
    - Expanded the testsuite with 2 new tests. One uses Test::Harness,
      the other is an online test and tries to connect to freenode.
    - Fixed all the examples to use POE::Session->create().
    - Added a warning to Makefile.PL about the online test.
    - Added delay() method for posting delayed commands.
    - Added a test to testsuite for ::State.
    - Added examples to Plugin docs.

4.80  Thu Mar 16 17:00:01 GMT 2006
    - Code tidy up.
    - Fixed DCC bug. As reported by helios.
    - POD fix to ::State, missed two methods.
    - Changed default alias to "$self". Thanks dngor.
    - General POD rewrite.

4.79  Sun Jan 15 17:15:01 GMT 2006
    - Serious bug in _send_event() spotted by ikaros @ freenode.
      The component wasn't dispatching events to itself since 4.78.

4.78  Tue Jan 10 22:01:09 GMT 2006
    - Documentation bug. 'irc_topic' event wasn't documented.
      Reported by bluepunk @ efnet, through dngor :)
    - Finally got around to switch session registering from using 
      POE::Session ( ew, nasty ) to session IDs instead.

4.77  Mon Dec 26 17:00:01 GMT 2005
    - Forgot to add use ::Common to Qnet::State. Doh.

4.76  Fri Dec 23 15:20:20 GMT 2005
    - Documentation bugs in the main IRC.pm SYNOPSIS. Bad BinGOs :( 
      Spotted and reported by Mulander via email.
    - Added 'plugin_debug' option to dump after plugin evals if 
      applicable.
    - Spotted a bug with the 'whois' handler. Looks like it has 
      never worked ( properly ). Adjusted 'commasep' for the special
      case WHOIS <target> mask,mask.
    - Minor fixes to Filter-IRC-Compat for argument handling.
    - Minor fixes to Pipeline and plugin_del().

4.75  Sun Dec 04 17:45:20 GMT 2005
    - Fixed a problem with DCC code. Thanks to ketas for the heads up.
    - Added disconnect() method with docs.
    - Code audit to make sure all event handlers return undef.
    - Updates to Connector plugin to fix timeout issues on connection.
    - Added tests for the included plugins: Connector,BotAddressed and
      BotTraffic.
    - Fixed dicebot.pl in examples/ problem with $SIG{INT}.
    - Updated docs to proxy support is SOCKS v4.
    - Added raw_events() method to enable/disable/display current irc_raw.
    - README updates. Notably to mention PoCo-SSLify for SSL links.
    - Stole japhy's ISupport plugin for .. erm .. new ISupport plugin >;]
    - Added CTCP.pm from gumbynet source. Added applicable test for it.
    - Added Console.pm from gumbynet source. Added applicable test for it.
    - Moved common functions to Common.pm. Amended relevant code to import 
      functions from there.
    - Added Proxy.pm from gumbynet source. Hacked to make much more useful
      and robust. Added applicable test for it and added ircproxy.pl to
      examples/ folder.
    - Patch applied to BotTraffic plugin from immute.
    - Completely rehacked how the component handles parsing irc traffic to
      events. Now using Filter::IRCD with Filter::IRC::Compat to process all
      input. Input and output filters are stackable.
    - Patch applied to BotAddressed plugin from immute.

4.74  Wed Oct 26 09:15:21 BST 2005
    - *sigh* another problem fixed with the new dns code.

4.73  Wed Oct 26 07:43:03 BST 2005
    - Minor problem with PoCo-Client-DNS fixed.

4.72  Tue Oct 25 19:01:05 BST 2005
    - Fix to Filter::IRC for INVITE. Apparently, asuka 
      timestamps after the channel name. Doh. Thanks to
      Johannes Studt for spotting that.
    - Fixed the documentation in Projects.pm
    - Solved Ticket #15058, re: NoDNS and multiple PoCo-Client-DNS
      sessions.

4.71  Thu Oct 13 19:04:01 BST 2005
    - Documentation bug in IRC.pm, spotted by cnelson.
    - Fixed ::State.pm for channel admin/owner support,
      spotted by Sebastien Wernerus.

4.70  Fri Sep 16 16:45:05 BST 2005
    - Fixed a bug where 'irc_raw' events were being switched off after
      a connect() without parameters was called.

4.69  Mon Sep 05 12:30:01 BST 2005
    - 3_connect.t was causing problems on Cygwin. Skipped this test
      on Cygwin for now.

4.68  Fri Sep 02 14:00:00 BST 2005
    - Altered Connector plugin so it starts the auto_ping on 
      'irc_connected' rather than 'irc_001'. Thanks to British
      Telecom for enabling me to spot that one. >:]

4.67  <Date>
    - Documentation amendments to Plugin.pm. Well spotted, perigrin :D
    - Added POD test.
    - Filter-CTCP.pm fixed. All 'warn's only enabled when debug is set.
      Thanks to ketas for spotting that one.
    - Fixed a typo made doing the previous fix. >;)
    - Added Projects.pm, hopefully a list of PoCo-IRC using projects.
    - Added placeholder for State::Lite, a lightweight version of State.
    - Tidied up main PoCo-IRC POD. Added a much better SYNOPSIS.

4.66  Thu Jul 28 17:55:01 BST 2005
    - Committed patches from Jeff 'japhy' Pinyan who has hacked
      prioritisation into the plugin system. Check Plugin.pm and
      Pipeline.pm for details.

4.65  Wed Jul 13 17:47:08 BST 2005
    - Fixed the anamoly where plugins weren't deleted if shutdown()
      is called. This should fix plugins that based around POE::Session.

4.64  Tue Jul 05 16:25:01 BST 2005
    - Fixed POD in Plugin::BotAddressed.
    - Added BotTraffic.pm plugin.

4.63  Thu Jun 16 21:55:49 BST 2005
    - Fixed POD in BotAddressed and Connector plugins,
      thanks integral @ MagNET for spotting that one.
    - perigrin pointed out a problem with Test::Harness
      and dependent components. Updated distribution 
      dependencies and amended Test::Harness accordingly.

4.62  Thu Jun 02 16:43:45 BST 2005
    - Spotted another problem with ::Test::Harness, updated
      Makefile.PL with Date::Format dependency.

4.61  Thu Jun 02 10:38:05 BST 2005
    - Found a bug in ::Test::Harness that made it fail tests
      where POE::Component::Client::DNS wasn't installed. Doh.

4.6   Wed Jun 01 15:28:03 BST 2005
    - Applied another ketas patch.
    - Added BotAddressed plugin.
    - Added ::Test::Plugin.
    - Added ::Test::Harness, PoCo-Server-IRC in disguise :)
    - Added tests for the ::Test::* 

4.5   Sun May 22 16:21:08 BST 2005
    - Moved repository from cvs to svn \o/
    - Applied patch from ketas.
    - Fixed docs for DCCPorts parameter to connect().
    - Removed State.pm plugin as it was becoming difficult to 
      keep in sync with State subclass. Eventually hope to replace
      State subclass with a proper plugin wrapper.
    - Relocated constants to Constants.pm, tidied up subclasses.
    - Added Connector.pm plugin. See docs for details.
    - PoCo-IRC will now send an 'irc_registered' event to 
      registering sessions. ARG0 will the poco's object.

4.4   Thu Apr 28 15:16:03 BST 2005
    - Added event handlers for PING and PONG IRC commands.
    - Added connected() method, so punters can query if the 
      component is connected to an IRC server or not.
    - Applied a patch from Apocalypse re: DNS and SSL.
    - Fixed Filter::IRC so it now parses PONG properly.
    - ketas pointed out that in State.pm, the state for a 
      channel wasn't getting deleted when the bot parted or 
      got kicked. Fixed.

4.3   Wed Apr 20 09:25:21 BST 2005
    - Added 'irc_raw' events and parameter to spawn/connect() to
      enable them. Thanks to webfox for the idea.

4.2   Thu Apr 14 12:00:00 BST 2005
    - Minor changes to State.pm to delete the STATE info when
      we disconnect, error or socketerr.
    - Reorganised the distribution.

4.1   Mon Apr 11 11:24:44 BST 2005
    - NATAddr bug spotted by apeiron @ MAGnet. Fixed.
    - webfox spotted a problem with whois plugin and POE
      Kernel assert_default. Hopefully fixed.

4.0   Tue Apr 05 10:39:42 BST 2005
    - Fixed a minor bug in Filter-IRC.pm, where it wasn't
      decoloning the mode line before splitting it. 
      Thanks to webfox for pointing it out.
    - Used eval's to make plugins system safe from rogue
      plugins. *tssk* *tssk*
    - Plugins system will now try to send events to a plugin
      method _default() if the call to S_* or U_* fails.
    - Applied a patch from webfox to enable SSL 
      connections. \o/
    - Ported SSL patch to all dependent sub-classes.
    - Teased and fixed a bug in IRC-State.pm. ban_mask() 
      should work properly now.
    - paulv @ MAGnet pointed out that spawn() and connect()
      arguments are case-sensitive. Adapted his patch. Args
      can be in any case now.

3.9   Mon Mar 21 09:17:05 GMT 2005
    - Applied patches from webfox @ MAGnet for UnrealIRCd
      support in IRC-State.pm and Plugin-State.pm.
    - Added plugin_list().

3.8   Mon Mar 14 10:15:22 GMT 2005
    - Applied ketas' DCC patch, eventually.
    - Applied a patch from Zsolt Szalai, which adds support
      for Freenode's 320 whois response.
    - Added Apocalypse's port of IRC-State.pm using the plugin
      API, Plugin-State.pm.
    - Added my plugin for 'irc_whois' and 'irc_whowas' 
      functionality.
    - Fixed all the necessary modules to use Whois plugin.

3.7   Fri Mar 04 17:37:34 GMT 2005
    - Applied massive patch from Apocalypse @ MAGnet that
      adds plugins. Read the docs in Plugins.pm for more info.
    - Corrected some grammar mistakes in Plugins.pm >:o)
    - Amended IRC-State.pm so that 'irc_nick' and 'irc_quit'
      have an additional parameter in ARG2 which is an 
      arrayref of channels that are common with the component.

3.6   Tue Mar 01 17:47:05 GMT 2005 "Y Adeilad Daffydd-Sant" 
				   ( The Saint David Build(ing) )
    - Applied ketas' patch to IRC-State. Adds channel_modes
      method and some code tidying.
    - Spotted that in some cases the component *needs* an
      alias. Made it use an internal alias unless one is 
      specified.
    - Applied another ketas patch to IRC.pm, puts a 
      friendly message when we can't allocate a DCC port.
    - Updated IRC-Qnet-State.pm to use a 'querytype' in the 
      extended WHO command, to specify <channel> or <nick>
      WHO queries, due to spurious channels appearing in the
      state. Big thanks to MikeC @ Qnet for the pointers.

3.5   Wed Feb 23 13:28:05 GMT 2005
    - IRC-State bug spotted and patched by ketas @ MAGnet
    - Same bug caught and squashed in IRC-Qnet-State by me.
    - Sorted out DCCPorts. It has to be an arrayref now.

3.4   Fri Feb 18 12:01:58 GMT 2005
    - Deprecated new() in favour of new constructor spawn().
      spawn() will except all the same parameters as connect().
      Moved config stuff to _configure() to save duplication.
    - Changed all the object constructors about. Bit tedious
      but now it is alot easier to subclass. See _create().
    - Added a hack for $self->session_id(). Made 'alias' 
      optional if used with 'spawn'.
    - Added parameter NATPort so one can specify the NAT
      address that a bot appears to other IRC clients as
      for DCC transfers, etc.
    - Added DCCPorts parameter so that one can specify a
      range of ports to use for initiating DCC, instead of
      using 0.
    - Implemented and added subclass ::State which provides
      nickname and channel tracking. \o/
    - Implemented and added subclass ::Qnet::State the ::State
      ported to the Qnet module.
    - Fixed the event dispatchers in _sock_up and _sock_down to
      use _send_event like everyone else. Danke to Apocalypse for
      spotting that. Amended _send_event so that 'irc_connected'
      and 'irc_disconnected' get sent to every session not just 
      those that ask for it, as was the original behaviour.
    - Documentation updates for all the new stuff.
    - Added CVSLOG which contains all the glorious changes in
      developing this thingy. :)
    - Added send_queue() method, as I noticed that merlyn's 
      logfile tailing code was accessing the heap and i moved all
      heap stuff to the object. *sigh* hacked it so that $heap holds
      a reference to $self->{send_queue} which should work.

3.3   Wed Feb 02 14:07:03 GMT 2005
    - Updated IRC-Qnet to a). support new whois/whowas;
      b). support irc_330 which is the account on ircu.

3.2   Wed Feb 02 11:00:59 GMT 2005
    - Implemented 'irc_whois' and 'irc_whowas' which
      gather all the salient data from the numeric replies
      and send one event containing a hashref.
      As suggested by numerous bods on #PoE @ MAGnet >;o)

3.1   Fri Jan 21 11:59:56 GMT 2005
    - Converted _send_event sub to object method.
    - Added IRC-Qnet, with specific extensions for Quakenet.
    - Updated README

3.0   Fri Dec 31 09:00:01 GMT 2004
    - Fixed Filter-IRC so that it groks WALLOPS properly.
    - Added docs/ and populated it with rfcs applicable to IRC.
    - Added a slightly more substantial test case, moved it to t/
    - Converted use of HEAP to OBJECT. PoCo-IRC is *now* an object.
    - Added a fix for the infamous PART bug. Has to be explicitly enabled
      by specifying PartFix => 1 in the 'connect' handler.
    - Added a switch to 'connect' so that the use of PoCo::Client::DNS
      can be disabled if necessary.
    - Applied the outstanding patches:
	- PoCo::Client::DNS patch by Jim Westfall
	- DCC Resume patch by Bruno Boettcher
	- Flood doc patch by Rocco Caputo
	- Debug param patch by Paul Visscher
	- Proxy Support patch by Jeff Pinyan
	- Locops patch by Jon Nistor

========== Maintainership changed from Fimm to BinGOs ====================

2.9   Sat Jul 19 13:32:45 PDT 2003
    - Only one change this time: Adam Foxson's patch to add prioritized
      notices.

2.8   Sat Jun  7 16:13:25 PDT 2003
    - Applied dngor's mega-patch, which fixes (among other things): a
      fix for a nasty lockup, improved error reporting, and better flood
      control.
    - Fixed some broken URLs and a couple mistakes in the documentation.

2.7   Sun Feb  2 15:05:28 PST 2003
    - Fixed up the example scripts to play nicer with POE's new signal
      handling. Thanks to dngor for bringing this up.
    - Added a patch by lunartear to properly handle spaces in DCC filenames.
    - Fixed a bug reported by Robert Rendler regarding CTCP quoting
      accidentally duplicating backslashes.

2.6   Wed Dec 11 20:27:51 PST 2002
    - Brian Kelly thoughtfully pointed out an URL in the documentation
      that was being mangled by pod2html. Should look better now.
    - Added a note about handling CTCP actions to the POD documentation,
      since that seems to be a source of confusion for a lot of people.
    - Added a 'list' event, which I seem to have overlooked entirely
      until now. Thanks to J.D. McCown for pointing it out.
    - Attempted to add Jim Westfall's asynchronous DNS patch, but I
      really need to learn a little more about IPv6 before I attempt to
      port somebody else's code to it. Hopefully in the next release.

2.5   Sun Oct 27 11:03:57 PST 2002
    - Added an AIM <-> IRC proxy bot to the example scripts. Share and enjoy!
    - I just now noticed that POE::Component::IRC sessions never get
      garbage-collected. DOH. Now you can send them "shutdown" events to
      make them go away. Too bad it's probably too late to be breaking
      backwards compatibility on this... sigh.
    - Added a bug fix from Trym Skaar (those Norwegians get the coolest
      names!) which fixes a potential crash while closing DCC connections.
    - Added a mega-patch from the unstoppable Rocco Caputo which prioritizes
      messages sent to the IRC server by importance. This ensures that
      pings and login information will always keep flowing, even if your
      bot's inane chatter has been throttled.

2.4   Thu Oct 10 14:22:04 PDT 2002
    - Added a patch from dngor to fix a crash caused by IRC servers
      sometimes inexplicably sending a blank line.
    - Added a patch from Jim Westfall which speeds up DCC file transfers
      by a couple orders of magnitude. Yay, Jim!

2.3   Fri Sep  6 07:59:50 PDT 2002
    - Fixed a rare "uninitialized value" warning in oneoptarg().
    - Added a patch from Trym Skaar which makes sure that DCC buffers
      are flushed before closing a connection. Thanks, Trym!

2.2   Fri May 24 13:00:44 PDT 2002
    - dngor found an excellent page about IRC server numeric codes,
      which I added a link to in the documentation.
    - dngor also gave me two more patches: one to avoid some deprecation
      warnings introduced in the latest version of POE, and another
      which fixed a bug in one of his earlier patches. He's such a stud.

2.1   Mon Mar  4 17:06:03 PST 2002
    - Added a long-buried patch from thefly to fix IRCnet channel name
      parsing. Sorry about the long turnaround on that one.
    - Applied Scott Beck's patch to Rocco's refcount patch. The whole
      "sessions not being GCed" brain-damage should be fixed now.

2.0   Fri Feb 22 15:23:23 PST 2002
    - Rocco Caputo gave me two patches to apply; the first was a fix to
      his earlier output throttling patch, and the second was a snippet
      of code that will allow bot-writers to avoid having to set aliases
      on their control sessions to keep them alive. Cool!

1.9   Wed Dec 12 22:44:13 PST 2001
    - David Dollar pointed out a bug with DCC using the wrong interface
      on multihomed hosts. Easy fix.

1.8   Mon Dec 10 16:04:06 PST 2001
    - Applied dngor's studly patch to throttle line output.
    - Fixed a bug that would cause events to get thrown away if they
      came in while the connection to the IRC server was down.

1.7   Sat Jul 21 00:46:06 PDT 2001
    - Fixed bugs in my initial implementations of the irc_invite event.
      Sigh. You ever have one of those days where you can't do anything
      right? Thanks again to the exceedingly patient Rasmus Hansen for
      pointing out that my updated version still didn't work right.
    - Fixed a bug in 'dcc_close' which prevented it from calling
      'irc_dcc_done' handlers properly.

1.5   Thu Jul  5 15:24:31 PDT 2001
    - Added an irc_invite event -- I knew I'd forgotten something!
      Thanks to Rasmus Hansen for the bug report.
    - Fixed a bug in topic() that would accidentally clear the topic
      when trying to query it. More thanks to Rasmus Hansen.

1.4   Mon Jul  2 17:10:59 PDT 2001
    - One of the fixes in 1.3 broke newline handling horribly, such that
      it was sending two sets of line terminators on every line. I am a
      doofus. Patched by Rocco Caputo.

1.3   Sat Jun 30 17:29:30 PDT 2001
    - The Indomitable Mark-Jason "Ominous" Dominus sent me so many
      patches and bug reports I'm almost at a loss to list them all.
      Among others, DCC SENDs no longer report the local pathname to the
      client on the other end, multiple concurrent DCC connections work,
      and some documentation errors have been fixed.
    - Many thanks to the infinitely studly Kees Cook, who, in addition
      to having a really cool name, sent me a big patch for lots of DCC
      bugs. DCC connections will now report errors and close their
      sockets properly! Woohoo! Also, 'irc_dcc_error' events give you
      more information about the connection that failed, and the
      'dcc_accept' event now lets you rename incoming DCC files.
    - Fixed a silly bug; sl() was sending \n instead of \r\n as a line
      terminator.
    - Changed lots of Filter::CTCP die()s to warn()s, on the advice of
      Peter Barabas. Thanks, Peter!

1.2   Thu May 24 02:36:40 PDT 2001
    - I have learned a valuable lesson about not including debugging
      prints in released code. Especially when the debugging code in
      question consists of somewhat vulgar inside jokes. :-)

1.1   Fri Mar  2 03:07:01 PST 2001
    - A couple patches from Jonathan Steinert: 'ctcp', 'privmsg', and
      'notice' will join() their arguments together with spaces, and
      'kick' will no longer accidentally concatenate the nick onto the
      kick message. Thanks, Jon!

1.0   Wed Feb 21 15:09:56 PST 2001
    - Split 'irc_ctcp' messages into 'irc_ctcp' and 'irc_ctcpreply'.
      My thanks to Jonathan Steinert.
    - Rocco "dngor" Caputo fixed up my DCC code for me, which was so
      broken as to exercise POE::Kernel bugs. :-) With his fixes in
      mind, I rewrote pretty much all the DCC stuff; it's much less
      hairy now.
    - Added 'dcc_chat' and 'dcc_accept' commands.
    - Moved all scripts into the "examples" directory and added a dummy
      test.pl, so it won't hang during CPAN installations anymore.
    - Worked around a bug in POE versions <0.1201, which caused DCC
      SEND/GET connections not to properly respond to pending data.
    - DCC connections should function properly now. Let me know if you
      experience problems.

1.0b  Sat Jan 13 14:49:22 PST 2001
    - This is a beta release. It may not entirely work, and DCC receive
      is still unimplemented. I'll list the bugs I remember fixing below.
      1.0 final will have DCC receive capability, I promise!
    - CTCP event names are now in the form of "irc_ctcp_ping" or
      whatever. See the POD documentation.
    - CTCP events now actually include the sender and recipient names.
    - The infamous "Not an ARRAY reference" bug should now go away. Make
      sure you're using a recent version of POE! Turned out it was a bug
      in POE::Filter::Line.

0.15  Tue Aug 10 19:21:58 EDT 1999
    - Well, it sucked for the first revision, at least. In my eager haste,
      I released the CTCP code with numerous debugging prints scattered
      throughout the source, some serious brokenness in mixed-mode
      messages, and a totally unimplemented put() method. All fixed! You
      can now actually send CTCP messages with the 'ctcp' and 'ctcpreply'
      events. Now to hack on DCC...

0.14  Sun Aug  8 18:29:46 EDT 1999
    - Wrote documentation for POE::Filter::IRC.
    - Moved Filter.pm to Filter-IRC.pm, in preparation for adding a
      CTCP filter.
    - Addi <amh@mbl.is> fixed a nasty bug with public/msg handling in
      the Filter-IRC module. I am SUCH a neen.
    - Finally sat down and wrote the bloody CTCP filter, at long last.
      Don't be surprised if it sucks for the first few revisions... the
      last one I wrote did, too. On the other hand, this uses big chunks
      of the working code from that effort, so maybe I'll get lucky this
      time.

0.13  Fri Jun  4 03:56:13 EDT 1999
    - Split the parser off into a separate POE::Filter::IRC module.
      The surgery was surprisingly easy, but I had to do an ugly
      Makefile.PL hack to get it to install correctly.

0.12  Fri Jun  4 01:16:55 EDT 1999
    - Wrote a nice README, finally.
    - Fixed a bug in the test.pl script where I accidentally referred
      to the 'irc_disconnected' event as 'irc_disconnect'. No wonder it
      wasn't shutting down properly.

0.11  Thu Jun  3 18:41:51 EDT 1999
    - Spruced up the parser's regexps with a lot of " +"'s.
    - Turned off all the massively verbose debugging code.
    - Realized that I need to write a README.

0.1   Thu Jun  3 16:55:24 EDT 1999
    - Completely functional, minus CTCP and DCC.

0.1a  Mon May 17 09:11:48 EDT 1999
    - Released for a little private QA to oznoid and dngor. Moderately
      functional. Can send every command (I think), and has a
      half-written parser that handles the most common IRC events, and
      a few which it wasn't meant to handle.

=============================================================================

Key:

Qnet == Quakenet <irc.quakenet.org>
MAGnet == MAGnet <irc.perl.org>
EFNet == efnet <irc.efnet.org>