[408] in BarnOwl Developers
[D-O-H] r541 - trunk/owl/perl/lib/Net/XMPP
daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:05:50 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: Sun, 21 Jan 2007 18:29:01 -0500 (EST)
Author: asedeno
Date: 2007-01-21 18:29:01 -0500 (Sun, 21 Jan 2007)
New Revision: 541
Modified:
trunk/owl/perl/lib/Net/XMPP/Roster.pm
Log:
Update to Roster.pm to not blow away presence information for a jid
on every roster update for that jid.
Modified: trunk/owl/perl/lib/Net/XMPP/Roster.pm
===================================================================
--- trunk/owl/perl/lib/Net/XMPP/Roster.pm 2007-01-21 21:50:29 UTC (rev 540)
+++ trunk/owl/perl/lib/Net/XMPP/Roster.pm 2007-01-21 23:29:01 UTC (rev 541)
@@ -269,12 +269,21 @@
my ($jid,%item) = @_;
$jid = $jid->GetJID() if UNIVERSAL::isa($jid,"Net::XMPP::JID");
+ if (exists $self->{JIDS}->{$jid})
+ {
+ foreach my $key (keys %item)
+ {
+ $self->{JIDS}->{$jid}->{$key} = $item{$key};
+ }
+ }
+ else
+ {
+ $self->{JIDS}->{$jid} = \%item;
- $self->{JIDS}->{$jid} = \%item;
-
+ }
foreach my $group (@{$item{groups}})
{
- $self->{GROUPS}->{$group}->{$jid} = 1;
+ $self->{GROUPS}->{$group}->{$jid} = 1;
}
}
@@ -439,12 +448,14 @@
foreach my $jid (keys(%{$roster}))
{
- $self->remove($jid);
-
if ($roster->{$jid}->{subscription} ne "remove")
{
$self->add($jid, %{$roster->{$jid}});
}
+ else
+ {
+ $self->remove($jid);
+ }
}
}