[837] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[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 ##################################
 ################################################################################


home help back first fref pref prev next nref lref last post