package DJabberd::PresenceChecker::Local;
use strict;
use warnings;
use base 'DJabberd::PresenceChecker';
sub check_presence {
my ($self, $cb, $jid, $adder) = @_;
my $vhost = $self->vhost;
my $map = DJabberd::Presence->local_presence_info($jid);
foreach my $fullstr (keys %$map) {
my $jid = DJabberd::JID->new($fullstr);
# see if $fullstr is still connected, otherwise ignore.
# ideally on disconnect/timeout, the local_presence_info
# would be cleaned, but let's not trust that for now.
$vhost->find_jid($jid) or next;
my $pres = $map->{$fullstr};
$adder->($jid, $pres);
}
$cb->done;
}
1;