[264] in BarnOwl Developers
[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.
################################################################################