[837] in BarnOwl Developers
[D-O-H] r830 - trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC
daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:10:14 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-To: dirty-owl-hackers@MIT.EDU
Date: Fri, 11 Jan 2008 01:38:51 -0500 (EST)
Author: nelhage
Date: 2008-01-11 01:38:50 -0500 (Fri, 11 Jan 2008)
New Revision: 830
Modified:
trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC/Connection.pm
Log:
Handle `nickinuse' errors and disconnects
Modified: trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC/Connection.pm
===================================================================
--- trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC/Connection.pm 2008-01-11 04:25:27 UTC (rev 829)
+++ trunk/owl/perl/modules/IRC/lib/BarnOwl/Module/IRC/Connection.pm 2008-01-11 06:38:50 UTC (rev 830)
@@ -31,22 +31,24 @@
$self->motd("");
bless($self, $class);
- $self->add_global_handler(376 => sub { goto &on_connect });
- $self->add_global_handler(['msg', 'notice', 'public', 'caction'],
+ $self->add_default_handler(sub { goto &on_event; });
+ $self->add_handler(376 => sub { goto &on_connect });
+ $self->add_handler(['msg', 'notice', 'public', 'caction'],
sub { goto &on_msg });
- $self->add_global_handler(['welcome', 'yourhost', 'created',
+ $self->add_handler(['welcome', 'yourhost', 'created',
'luserclient', 'luserop', 'luserchannels', 'luserme'],
sub { goto &on_admin_msg });
- $self->add_global_handler(['myinfo', 'map', 'n_local', 'n_global',
+ $self->add_handler(['myinfo', 'map', 'n_local', 'n_global',
'luserconns'],
sub { });
- $self->add_handler(375 => sub { goto &on_motdstart });
- $self->add_handler(372 => sub { goto &on_motd });
- $self->add_handler(376 => sub { goto &on_endofmotd });
- $self->add_global_handler(cping => sub { goto &on_ping });
- $self->add_global_handler(join => sub { goto &on_join });
- $self->add_global_handler(part => sub { goto &on_part });
- $self->add_default_handler(sub { goto &on_event; });
+ $self->add_handler(motdstart => sub { goto &on_motdstart });
+ $self->add_handler(motd => sub { goto &on_motd });
+ $self->add_handler(endofmotd => sub { goto &on_endofmotd });
+ $self->add_handler(join => sub { goto &on_join });
+ $self->add_handler(part => sub { goto &on_part });
+ $self->add_handler(disconnect => sub { goto &on_disconnect });
+ $self->add_handler(nicknameinuse => sub { goto &on_nickinuse });
+ $self->add_handler(cping => sub { goto &on_ping });
return $self;
}
@@ -146,6 +148,21 @@
BarnOwl::queue_message($msg);
}
+sub on_disconnect {
+ my $self = shift;
+ delete $BarnOwl::Module::IRC::ircnets{$self->alias};
+
+ BarnOwl::admin_message('IRC',
+ "[" . $self->alias . "] Disconnected from server");
+}
+
+sub on_nickinuse {
+ my ($self, $evt) = @_;
+ BarnOwl::admin_message("IRC",
+ "[" . $self->alias . "] " .
+ [$evt->args]->[1] . ": Nick already in use");
+}
+
sub on_event {
my ($self, $evt) = @_;
BarnOwl::admin_message("IRC",
@@ -154,6 +171,7 @@
if BarnOwl::getvar('irc:spew') eq 'on';
}
+
################################################################################
########################### Utilities/Helpers ##################################
################################################################################