[jdev] Net::Jabber Process() blocking
Bart Matthaei
bart at dreamflow.nl
Thu Jun 2 03:11:28 CDT 2005
On Thu, Jun 02, 2005 at 12:57:01PM +1000, Jeremy Lunn wrote:
> On Sun, May 29, 2005 at 08:01:55PM +1000, Jeremy Lunn wrote:
> > Here's a quick and nasty script I wrote to quickly return a list of
> > users logged in, using service discovery (using it with jabberd 2.0s8).
> > It works fine 80% of the time, but sometimes it blocks at the Process
> > line, even though there's a timeout specified. Any reason as to why it
> > might be doing this? Any way I could debug it?
>
> No one experienced similar problems with Net::Jabber/Net::XMPP?
> I've tried messing around with debug output, it seems that the <iq>
> response is being received but it's not executing the callback for some
> reason.
>
> I'm guessing it's a bug in Net::Jabber?
Did you strace the process to check what it's doing?
Also, did you make sure the InIQ() process actually returns?
As a comment on your code:
Try creating your own process loop. Something in the line of:
//
...
$con->Send($req);
my $loops = 0;
while($loops < 10) {
$loops += 1;
$con->Process(0);
sleep(1);
}
//
If there is a bug in the Process() function of Net::Jabber, this could
be a workaround.
Regards,
Bart
--
Bart Matthaei bart at ambrero.nl
Ambrero Software Development
http://www.ambrero.nl/
More information about the JDev
mailing list