[264] in BarnOwl Developers

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

[D-O-H] r434 - in trunk/conf.asedeno/owl: . modules

daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:04:17 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: asedeno@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Tue, 31 Oct 2006 11:15:47 -0500 (EST)

Author: asedeno
Date: 2006-10-31 11:15:46 -0500 (Tue, 31 Oct 2006)
New Revision: 434

Modified:
   trunk/conf.asedeno/owl/modules/jabber.pl
   trunk/conf.asedeno/owl/owlconf.pl
Log:
owlconf.pl:
  Add hooks for buddy list.
  Add $reload variable so we can distinguish owlconf reload from shutdown.

modules/jabber.pl:
  Change callbacks to anonymous subroutines so reloads won't kill them.
  Tweak some disconnect code, including fixing a typo.



Modified: trunk/conf.asedeno/owl/modules/jabber.pl
===================================================================
--- trunk/conf.asedeno/owl/modules/jabber.pl	2006-10-30 18:42:49 UTC (rev 433)
+++ trunk/conf.asedeno/owl/modules/jabber.pl	2006-10-31 16:15:46 UTC (rev 434)
@@ -45,7 +45,7 @@
     
     if ($::shutdown)
     {
-	$client->Disconect();
+	$client->Disconnect();
 	$client = undef;
 	return;
     }
@@ -104,11 +104,11 @@
     
     # These strings should not be hard-coded here.
     $client = Net::Jabber::Client->new();
-    $client->SetMessageCallBacks(chat => \&process_incoming_chat_message,
-				 error => \&process_incoming_error_message,
-				 groupchat => \&process_incoming_groupchat_message,
-				 headline => \&process_incoming_headline_message,
-				 normal => \&process_incoming_normal_message);
+    $client->SetMessageCallBacks(chat => sub { owl_jabber::process_incoming_chat_message(@_) },
+				 error => sub { owl_jabber::process_incoming_error_message(@_) },
+				 groupchat => sub { owl_jabber::process_incoming_groupchat_message(@_) },
+				 headline => sub { owl_jabber::process_incoming_headline_message(@_) },
+				 normal => sub { owl_jabber::process_incoming_normal_message(@_) });
     my $status = $client->Connect(hostname => 'jabber.mit.edu',
 				  tls => 1,
 				  port => 5222,
@@ -122,8 +122,9 @@
 
     my @result = $client->AuthSend(username => $ENV{USER}, resource => 'owl', password => '');
     if($result[0] ne 'ok') {
-        owl::error("Error in connect: " . join(" ", $result[1..$#result]));
-        $client->Disconnect();
+	owl::error("Error in connect: " . join(" ", $result[1..$#result]));
+	$client->Disconnect();
+	$client = undef;
         return;
     }
 

Modified: trunk/conf.asedeno/owl/owlconf.pl
===================================================================
--- trunk/conf.asedeno/owl/owlconf.pl	2006-10-30 18:42:49 UTC (rev 433)
+++ trunk/conf.asedeno/owl/owlconf.pl	2006-10-31 16:15:46 UTC (rev 434)
@@ -54,6 +54,7 @@
 our @onReceiveMsg = undef;
 our @onModuleHelp = undef;
 our @onMainLoop = undef;
+our @onGetBuddyList = undef;
 
 ################################################################################
 # Mainloop hook and threading.
@@ -68,6 +69,8 @@
 # log out of and in to a perl-based IM session.
 our $shutdown : shared;
 $shutdown = 0;
+our $reload : shared;
+$reload = 0;
 
 sub owl::mainloop_hook
 {
@@ -120,6 +123,7 @@
     @onReceiveMsg = ();
     @onModuleHelp = ();
     @onMainLoop = ();
+    @onGetBuddyList = ();
 
     loadModules();
     foreach (@onStartSubs)
@@ -145,9 +149,9 @@
 sub reload 
 {
     # Shutdown existing threads.
-    $shutdown = 1;
+    $reload = 1;
     owl::mainloop_hook();
-    $shutdown = 0;
+    $reload = 0;
     @onMainLoop = ();
     
     # Do reload
@@ -197,6 +201,19 @@
 }
 
 ################################################################################
+# Hooks into get_blist()
+################################################################################
+
+sub owl::get_blist
+{
+    my $m = shift;
+    foreach (@onGetBuddyList)
+    {
+	&$_($m);
+    }
+}
+
+################################################################################
 # Module help system.
 ################################################################################
 


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