Revision history for POE-Component-Server-IRC

1.62  Tue Dec 28 18:56:15 GMT 2021
    - Add TLSv1_3 definition

1.61  Wed Mar 24 21:38:15 GMT 2021
    - Defanged debug for bmask test

1.60  Tue Aug 25 21:30:09 BST 2020
    - Fixed crypt() issues with OpenBSD

1.59  Thu Aug 20 16:58:31 BST 2020
    - Fix a bug in peer TMODE handling

1.58  Tue Nov 26 20:51:37 GMT 2019
    - Pod fixes
    - capability tests tweaked to avoid race
      conditions
    - Added SSL test where client doesn't provide
      a certificate
    - BMASK slight refactor so it doesn't announce
      masks that are already applied

1.57  Thu Aug 29 11:45:24 BST 2019
    - Account for race conditions in two tests

1.56  Thu Aug 29 10:47:56 BST 2019
    - Fix sprintf warnings
    - Fix test failures due to OS differences
    - Resolve issues with perl v5.10.1 (possibly others)


1.55  Thu Aug 22 10:54:19 BST 2019
    - Added Net::CIDR support for netmasks
    - Full IPv6 support for all connections/listeners
    - Only supports TS6 protocol for server connections
      - major internal refactoring to accomodate this
    - Added TBURST for bursting channel topics
    - Added AWAY burst for users' away messages
    - Removed GLINE and added DLINE/UNDLINE, XLINE/UNXLINE
    - RKLINE is now local only and not propagated
    - Added UNRKLINE for removing RKLINEs
    - Added IRCv3.x capability negotiations CAP cmd
      - added 'away-notify', 'invite-notify' 'multi-prefix'
      - added 'userhost-in-names', 'chghost', 'account-notify'
      - added 'extended-join'
    - Added bcrypt passwd support for OPER passwords
    - Added bcrypt passwd support for auth passwords
    - Fixed problem with pmkpasswd utility
    - Updated the included x509 cert and key
    - OPERWALL has been removed, replaced with GLOBOPS
    - Refined LOCOPS for consistency with GLOBOPS
    - Implemented WHOWAS command
    - Added RESV/UNRESV for reserving nicknames/channels
    - Added ENCAP peer command
    - Implemented SVSJOIN, SVSHOST, SVSNICK, SVSTAG, SVSPART,
      SVSMODE and SVSKILL services commands
    - Added methods for defining services hosts
    - Implemented KNOCK command with throttling
    - Added account and nick registration support
    - LIST command now supports SAFELIST and ELIST filters
    - Implemented TRACE and ETRACE commands
    - Implemented pseudo commands/service aliases
    - NOTICEs sent for server operations with delivery to
      OPERs based on umodes. New snotice event.
    - Major overhaul of TLS/SSL. Server and oper certificate
      fingerprint authentication added.
    - Added channel modes +C, +O, +M, +N, +R, +S, +T +u and +L
    - Implemented WATCH command
    - Implemented CLOSE command
    - Added daemon_server_join() for forcing channel joins
    - Added daemon_server_realops() for sending server notices
    - Added antispam features for exit messages and nick changes
    - Added SET command for adjusting tunable settings
    - Added HELP command
    - Added +X umode See *LINE expiration notices (oper only)
    - Start of hidden servers support (not feature complete)

1.54  Fri Nov 25 15:36:51 UTC 2011
    - Resolve problem with remote (versus localhost) clients
    - Fix shutdown on Win32

1.53  Fri Oct 7 15:35:27 UTC 2011
    - Fix channel mode handling
    - Some configuration options were not being accepted case-insensitively
    - The SQUIT commands was not working

1.52  Thu Oct 6 11:50:38 UTC 2011
    - Fix public messages for non-spoofed clients (thanks BinGOs!)

1.51  Sat Aug 27 04:32:12 GMT 2011
    - Fix authentication for clients connecting from localhost

1.50  Thu Jun 2 02:53:21 GMT 2011
    - Fix invalid method call in Auth plugin when there's no ident response

1.49  Wed May 25 06:23:32 GMT 2011
    - Fixed a bug were unsuccessful client registration would leave the
      client's nickname "already in use" when later clients request it.
    - Backend.pm: Moved client authentication into an Auth plugin.
    - Backend.pm: Be backwards-compatible by not doing "keys $hashref"

1.48  Sun May 22 17:12:03 GMT 2011
    - Don't enable debug output if a plugin enables raw events
    - Backend.pm: Fix issues with listening on the same port on multiple
      addresses. Also don't emit an ircd_listener_add event when we fail to
      add a listener.
    - croak() instead of warn() when add_peer() is called wrong
    - Document peer name argument to ircd_connected
    - Depend on IRC::Utils 0.10 for an improved parse_mask()
    - Add arguments to ircd_socketerr describing the error
    - Fix broken chomping of output for ircd_raw_output
    - IRC.pm: Emit ircd_daemon_error on failed peer registration
    - Depend on PoCo-Client-DNS and PoCo-Client-Ident again, since most
      people will want them, and authentication is enabled by default.

1.47  Sat May 21 00:14:59 GMT 2011
    - Only load POE::Filter::Zlib::Stream when using ziplinks
    - Backend.pm: Document create()'s plugin_debug and options parameters
    - Add ircd_raw_(input|output) to the backend, and use them to implement
      a 'debug' option for the frontend.
    - IRC.pm: Only EAT events from clients, not plugins, for extensibility.

1.46  Fri May 20 12:12:08 GMT 2011
    - Backend.pm: Document the 'idle', 'antiflood', and 'usessl' parameters
      to add_listener()
    - Depend on POE::Component::Syndicator 0.04 so that 'register' with no
      arguments will work.

1.45  Fri May 20 09:23:17 GMT 2011
    - Inherit from POE::Component::Syndicator
    - Make the DNS/Ident dependencies optional, and die if their use is
      requested when they are unavailable
    - Turn the OperServ subclass into a plugin instead
    - Vastly improved the layout of the documentation

1.44  Mon Apr 4 20:44:51 GMT 2011
    - Fix to work with latest IRC::Utils

1.43  Sun Apr 3 02:57:40 GMT 2011
    - Removed most of Common.pm in favor of IRC::Utils
    - Use strftime() instead of Date::Format

1.42  Fri Nov 5 12:30:25 CET 2010
    - Fix race condition in t/ts_02_multi.t

1.41  Sat Oct 30 22:25:55 GMT 2010
    - Converted the Changes file to something human-writable (and more
      human-readable)
    - Removed the unused Pipeline.pm file
    - Migrate distribution to Dist::Zilla
    - Use Object::Pluggable instead of POE::Component::Pluggable
    - Changed POE::Component::IRC to a test (instead of runtime) dependency
    - Added some documentation to the distribution about the IRC server
      protocols we implement
    - The compress link test was getting skipped unconditionally. Fixed.
    - The SSL test was not getting run. Enabled it.
    - Remove POE::Component::Server::IRC::Test::Plugin and the associated
      4_test_plugin.t test. That sort of testing is covered by
      Object::Pluggable's test suite.

1.40  Fri Oct 23 16:03:38 CET 2009
    - Don't send NICK messages more than once when we're in channels
    - Updated Makefile.PL with newer Module::Install directives

1.38  Tue Jan 27 13:21:14 GMT 2009
    - We are now using PoCo-Pluggable for plugin stuff
    - Fixed a race condition where two connecting clients could obtain the
      same nickname

1.36  Sat Jan 24 22:13:54 GMT 2009
    - Fixed RT#42760 reported by Hinrik
    - Added the LICENSE file

1.34  Wed Oct 1 11:46:50 GMT 2008
    - Moved to full M::I Makefile.PL
    - Fix and regression test for RT #39701 reported by Hinrik

1.32  FriMay 9 13:47:35 GMT 2008
    - Moving author tests to xt/, updated prereqs list, indentation tidy to
      OperServ.pm
    - Removed MANIFEST.SKIP
    - Updated and added LICENSE information
    - Fixed some distribution problems

1.30  Tue Mar 11 12:32:17 GMT 2008
    - Applied a patch to OperServ from eggzeck for enhancements.

1.28  Wed Feb 20 16:39:30 GMT 2008
    - Added pmkpasswd utility
    - Forgot to add prereq for Crypt::PasswdMD5

1.26  Sat Feb 16 13:50:36 GMT 2008
    - Added crypt/md5 encryption for OPER passwords. New funcs in ::Common,
      mkpasswd and chkpasswd. Updated common test. Thanks to nanonyme for
      the suggestion.

1.24  Thu Nov 1 14:00:41 GMT 2007
    - Update Module::Install to 0.68

1.22  Sun Sep 23 10:13:14 GMT 2007
    - Added config option to enable oper only RPL_WHOISACTUALLY as
      suggested by Kaitlyn Parkhurst

1.20  Thu Sep 20 17:56:26 GMT 2007
    - Removed executable property from Makefile.PL
    - Updated some of the prereqs in Makefile.PL

1.18  Sat Aug 25 18:01:14 GMT 2007
    - Applied a patch from lunartear to fix PONG responses

1.16  Thu Aug 23 16:16:45 GMT 2007
    - add_listener() was using BindAddr instead of BindAddress when calling
      SocketFactory. Spotted by lunartear

1.14  Thu Aug 23 15:53:52 GMT 2007
    - Updated the SSL certificate and key
    - Added 'ircd_listener_failure' output event.

1.12  Fri Jun 29 10:28:37 GMT 2007
    - Documentation fixes. Added state_(nicks|chans|peers) methods and
      documented.

0.11  Tue Feb 13 15:57:17 GMT 2007
    - Refactored the MagNET Oper hacks. Should all work as expected now.

1.10  Tue Feb 13 11:53:44 GMT 2007
    - Added MagNET Oper hacks.
    - Added new test, Test::Kwalitee

1.09  Mon Jan 29 14:52:17 GMT 2007
    - Kwalitee fixes.

1.08  Tue Jan 23 09:58:13 GMT 2007
    - Fixed a problem with the module on perl-5.6.1

1.07  Fri Dec 29 11:09:49 GMT 2006
    - PoCo-IRC TOPIC bug caused problems with topic test. Raised poco-irc
      prereq to 5.18.

1.06  Sat Dec 2 15:46:33 GMT 2006
    - Automagic registration of parent sessions added, as per buu's
      suggestion

1.05  Sun Nov 19 14:29:24 GMT 2006
    - Fixed problem with LIST and topics. Fixed TOPIC command as well.
      Added a test. Reported by eggzeck"

1.04  Thu Nov 16 09:25:31 GMT 2006
    - Documentation fix for ::Pipeline, spotted by Martijn van Beers.
    - Made the compresslink test skip on *bsd systems, which currently have
      issues that test.
    - Problem with 472 numeric response fixed. Reported by eggzeck.

1.03  Thu Oct 26 12:14:17 GMT 2006
    - Ported parse_user() from PoCo-IRC-Common. Ported the new improved
      shiny parse_mode_line() from the same source.

1.02  Fri Sep 29 08:57:44 GMT 2006
    - Fixed RT #21769. Sppofed nicks now have a default ircname set.
      Reported by David Serrano

1.01  Wed Sep 27 10:12:39 GMT 2006
    - Ensured all modules had 'use strict'

1.00  Tue Sep 26 09:09:22 GMT 2006
    - Removed Build.PL and bumped versions for release.

0.99_05  Sat Sep 16 15:43:54 GMT 2006
    - Updated to use Module::Install

0.99_04  Wed Sep 6 17:43:39 GMT 2006
    - Added OperServ subclass once again. New and improved and shiny. With
      a test.
    - Added documentation to OperServ and bumped the version numbers.

0.99_03  Sun Sep 3 17:16:55 GMT 2006
    - Added pod and pod coverage tests. Fixed documentation accordingly.

0.99_02  Mon Aug 28 18:01:25 GMT 2006
    - Fucking test was smurfed, still had PoCo-Server-IRC-OperServ in the
      simple test. Fucktard.

0.99_01  Mon Aug 28 17:30:21 GMT 2006
    - IRC.pm is now a subclass of Backend.
    - Updated the documentation in Plugin.pm, removed references to USER
      events as they aren't applicable.
    - Added compressed links using POE::Filter::Zlib to ::Backend.
    - Fixed a bug in the auth system by switching to using Ident::Agent.
    - Added simpleclient.pl for testing purposes. Backend: now has
      connection idle tracking. Daemon: implemented nearly all IRC client
      commands, ( lacking STATS, LINKS, CONNECT, OPER, KILL, etc. ),
      extended 2_pocosi.t to suit.
    - Implemented OPER, KILL
    - Server to server code written and debugged against Hybrid-7.0 \o/
    - Added REMOVE command a la Freenode hyperion, which is a forced PART.
    - Added test script for SSLify with associated key/cert combo
    - We now generate multiple RPL_NAMES if the line length exceeds 510
      characters.
    - RPL_WHOISCHANNELS automagically splits on long lines now
    - More documentation, including SYNOPSIS.
    - Refactored INVITE code and added handler for peer INVITE messages
    - Implemented GLINE, KLINE, RKLINE and UNKLINE peer and oper commands.
    - Implemented spoofed SJOIN command, so spoofed nicks can reset
      channels. All applicable commands should multiline if output lines >
      510 chars now. Makefile.PL will detect previous poco-server-irc
      installs and warn of API changes.
    - Implemented MODES, the maximum number of non-simple chanmodes that
      can be applied in one go. Numerous tweaks and fixes. Still haven't
      got to the bottom of the chan desyncs with half-ops.
    - Fixed a bug in SJOIN code. Tested using 60 flood bots. Favourable
      results.
    - Fixed SQUIT, it was working fine for a leaf-node, but not as a hub.
    - Reimplemented PRIVMSG/NOTICE handling for both client and peer. Now
      supports exactly the same syntax as Hybrid.
    - Changes to UMODE code; Implemented LOCOPS, WALLOPS and OPERWALL
      commands for client/peer; Added WALLOPS server API command;
    - Implemented +D umode which is channel deafness, ho-hum.
    - Added ACCEPT command as related to CALLERID.
    - Implemented CALLERID (+Gg).
    - Added a README

0.3  Thu Aug 25 14:06:01 GMT 2005
    - Amended POD to link the ThreatNet web site.
    - Added use strict and caught and fixed a lot of typos/scoping
      problems.

0.02  Mon Jun 20 09:50:14 GMT 2005
    - First CPAN release