Revision history for Perl extension Net::IRC.
0.1 Fri Oct 17 00:25:41 CDT 1997
- original version; created by h2xs 1.18
0.2 Sat Oct 18 16:00:38 CDT 1997
- it works now, thanks entirely to Tkil (tkil@scrye.com)
- substantial cleanup of Connection.pm
- Removed "Written and designed by:" line in header comments...
it didn't seem fair to the many other people who are putting
such studly efforts into this.
0.25 Sun Oct 19 06:26:36 CDT 1997
- Removed extraneous return values from handler code (don't ask)
- It's now possible to have more than one Net::IRC object in a
single script, but I can't see why you'd ever want to.
- We now disconnect properly. Woohoo!
- Fixed YA CTCP bug.
- Fixed up parse() handling for cases like MODE and NICK.
- Fixed many stupid bugs that should have been caught long ago.
- Lots more, but I can't remember them all. Again, huge gigantic
thanks are due to Tkil for his tireless dedication to hunting
down and patching bugs. You go, man!
0.26 Mon Oct 20 01:37:39 CDT 1997
- Fixed Makefile.PL to install IRC.pm and the other module in
different places (it's nice to have make install actually work.)
0.27 Mon Oct 20 23:28:48 CDT 1997
- Made trivial changes to the formatted output code (format(),
Event->new(), _pr(), Connection->new()). This should give other
developers a bit clearer idea of where I'm going with it. Time
for extended hacking is scarce right now, alas.
0.28 Fri Oct 24 06:12:42 CDT 1997
- Added $conn->me("#perl", "hacks billn to pieces") as an alias to
$conn->ctcp("action", "#perl", "hacks billn to pieces").
- Fixed a couple small errors (typos, mostly).
0.29 Sat Oct 25 16:48:19 CDT 1997
- Added a placeholder DCC.pm to the source tree so I won't have to
go back and change stuff once it's written.
- Changed the order of default nick/ircname variables.
- Fixed the source tree and makedist script on execpc.com to allow
for easier diffing and patching.
0.3 Tue Nov 25 02:49:37 CST 1997
- Makefile.PL now barfs on older versions of Perl.
- IRC.pm caches $self->ioselect in select() to clean up the code
a little. OO and procedural style bigots reach a compromise.
- IRC.pm's start() and select() methods have been merged.
- All eval "code;" statements changed to eval { code; }.
- Made small adjustment to Connection->parse() numeric routine.
- Working draft of DCC.pm written by borys, who kicks much ass.
- Bunch of subsequent revisions to DCC.pm, mostly by archon.
- irctest script nearly doubles in size.
- IRC.pm, especially start(), gets modified for DCC.pm.
- A bunch of other smaller changes associated with DCC.pm that
I'm too tired to write down. You get the idea.
- Spent HOURS hacking miscellaneous CTCP and parse() bugs. Millions
of thanks to Silmaril for devoting his brainpower to the bughunt.
0.31 Wed Nov 26 00:19:30 CST 1997
- Fixed the irritating "Sender: owner-test@betterbox.net" bug in the
mailing list config. OK, so it doesn't belong in this file, but I
guess it's worth mentioning somewhere.
- ctcp_reply() method added to Connection.pm and used in irctest.
0.32 Wed Dec 3 07:59:28 CST 1997
- Added new_send(), new_get(), and new_chat() to Connection.pm
- Removed ^A-removing stuff in DCC.pm (it's been fixed in Connection).
- Completely rewrote the irctest script, with more additions planned.
- The numeric event stuff has been farmed off from parse() to a
separate routine, parse_num(). This part is going to present a big
problem in weeks ahead... Jarkko Oikarinen should be shot.
- Default block size for DCC SEND now 1k instead of 8k.
- DCC SEND and GET now always do binary transfers. If a problem comes
up with this, blame it on tchrist and BeeF. :-)
0.33 Fri Dec 5 14:27:41 CST 1997
- Version numbers now more realistic.
- Net::IRC now specifically resides under the Artistic License, which
is now distributed with the module. Anyone have a problem with this?
- Connection.pm now strips CRs as well as LFs. Thanks, Aryeh!
- \r and \n hardcoded as \015 and \012 in some places to avoid
possible cross-platform confusion.
- Problems with certain literal handler calls fixed in handler().
- irctest is now a full-featured Zippybot! Yow!!
- Made a first pathetic stab at documentation, still working on it.
0.4 Wed Dec 10 16:08:21 CST 1997
- Made small changes to arg list for DCC::CHAT->new().
- Fixed precedence problem in Connection->new_* methods.
- Added DCC CHAT and GET capabilities to irctest.
- Added 'Proto => "tcp",' to all IO::Socket calls in DCC.pm, after
being led astray by incorrect documentation. :-)
- User notification for dropped connections is more polite.
- Change to fragment handling in IRC->start().
- DCC CHAT->new() now requires nick as argument.
- privmsg() can be used to send DCC CHAT messages... just pass it
an IO::Socket instead of a nick.
- Removed some debugging prints that accidentally got left in
a few parts of the code. Doh!
0.41 Wed Dec 10 22:36:10 CST 1997
- Fixed the order of args to Connection->ctcp().
- Fixed lots of bugs that this change caused to manifest. Argh.
- First Net::IRC release posted to CPAN, 11 Dec 1997.
0.42 Mon Dec 29 22:44:18 CST 1997
- Added dcc_open and dcc_close handlers for DCC connections.
- DCC::GET now requires a nick as an argument to new().
- Added motd, users, whowas, ison, lusers, userhost and wallops subs
to Connection.pm.
- Added event scheduler to IRC.pm and Connection.pm. Good idea, Che!
- &AUTOLOAD in Connection.pm completely rewritten.
- Applied a nifty patch that breaks big messages to privmsg() and
notice() into smaller chunks and sends them piecemeal.
- irctest now does DCC SEND via public message, as a demonstration.
- Real POD documentation for IRC.pm written; work begun on PODs for
the rest, but it's a nontrivial task.
- Added do_one_loop() patch to IRC.pm and rewrote start() for easier
Tk integration with Net::IRC scripts.
- Fixed user mode case in Connection->parse().
- Added a timeout() method to IRC.pm for finer user control over the
select loop. Woo woo!
0.43 Tue Dec 30 18:20:26 CST 1997
- Fixed some problems with the previous distribution... a few outdated
files weren't properly removed before tarring by a particularly
mischevious script.
0.44 Wed Dec 31 18:13:32 CST 1997
- Fixed some newly created bugs with Connection->connected. Argh!
- Scrapped and redid distribution-rolling scripts. You know,
ExtUtils::MakeMaker is really nice.
0.45 Sat Jan 3 15:48:57 CST 1998
- All connections now give their names and causes of death upon
expiring. This should make DCC problems much less confusing. :-)
- DCC SEND and CHAT no longer block on accept(). Woohoo!
- IRC->remove_conn() changed to removeconn() for consistency with
IRC->addconn() and IRC->newconn().
0.5b Sun Mar 15 14:29:09 CST 1998
- Sizable chunks of IRC, DCC, and Connection.pm rewritten according to
wise suggestions from the venerable elders \merlyn and Roderick.
- addfh() and removefh() methods added to IRC.pm; changed() and
closed(), having been rendered utterly useless, were removed.
- Reading data from ready non-{DCC,Connection} sockets is now the
responsibility of the user. This provides more flexibility (if you
only want to read N bytes, if it's a buffered FH and not a socket,
etc.), but will break any existing such code. Better now than later.
- Various documentation updates for IRC.pm; more progress made on the
as-yet-unreleased Connection.pm docs. Any volunteers to help out
with the PODs?
- The select loop now monitors writable and errored filehandles as
well as readable ones. See the updated documentation for IRC.pm.
- Chat request feature added to irctest... if you say anything
matching /^Chat/i on a channel with your bot, it will try to
initiate a DCC CHAT with you. Mostly for debugging purposes, but
it might actually be useful to someone out there anyhow...
- A bug report from Che_Fox led to the squashing of a bug in privmsg
that kept it from properly trimming long lines before sending.
- Johnathan Vasilis pointed out a quickly-fixed bug in Connection->
userhost(). Thanks!
- Events now trim preceding colons properly. Happy now, longhair? :-)
- Fixed a big fat bug with _add_generic_handler. Setting up multiple
handlers with arrayrefs works again now.
- Connection.pm and DCC.pm's input routines now actually throw a
"disconnect" or "dcc_close" event for connection-losing errors.
- Alex Ibrado's bug report resulted in the fixing of some stupid bugs
in the kick, topic, squit, and wallops methods. Doh...
- Added Tkil's monster patch to fix Connection->parse errors, among
other things. You go, Tkil!
0.5 Wed Apr 1 23:28:13 CST 1998
- Added a few Undernet compatibility changes suggested by Che_Fox.
- Fixed a really dumb bug in Connection->default. Umm, doh.
- DCC.pm got a number of miscellaneous changes, including making
$dcc->{_time} actually useful for SEND and CHAT, and adding events
for dcc_open and dcc_close all over. Thanks, mjd!
- Fixed some evil bugs in DCC.pm... CHAT could call autoflush() on
the result of a failed IO::Socket->new(), and DCC GET had an odd
hanging problem on the last block of a file. *Many* thanks to the
indefatigable \mjd for spotting and patching the latter.
- Added sanity checks to DCC.pm to prevent abuse by malicious remote
clients. Net::IRC -- making the world safe for bots, one Boolahman
at a time!
- Stupid low-level CTCP dequoting bug fixed on a report from \mjd.
- Even stupider Connection->server bug tracked down and stomped.
0.51 Tue May 19 01:03:57 CDT 1998
- Aryeh patched a few minor bugs in the formatting functions.
- Problem with the select timeout in do_one_loop() squashed.
- Minor changes to dain-bramaged parts of DCC::CHAT::parse().
- Connection::parse() is now much friendlier to "localhost" servers.
- Added another error check to IRC::schedule() (thanks, Cuberoot!)
- Connection::sl() won't send \r\n over DCC CHAT anymore.
- All "return undef"s changed to "return;" as per gbacon's suggestion.
- irctest now uses strict -- it was mostly strict-safe before, but I
had forgotten the actual 'use'... doh. Thanks, arkuat!
- tile is the DCC God. A two-line patch of his fixed an ugly DCC
CHAT blocking bug I'd been hacking on for a few days. You GO, tile!
- The Net::IRC source now uses Carp for all error reporting.
- The setout() and seterr() methods are dead as a result of the
previous change. You'll have to do your own tee'ing... sorry.