Net::Jabber (really, XML::Stream) Hates My Server

pudge on 2008-01-04T00:32:31

So I tried connecting our Jabber bot to our new Jabber server (OpenFire). It wasn't happy. At first I thought it might be SSL, and after wrestling with that and many other things, I finally decided to randomly comment out things I didn't understand. Well, not randomly: one of the errors I kept seeing when I was pretty sure I had everything right was: Can't use an undefined value as a HASH reference at /usr/local/lib/perl5/site_perl/5.10.0/XML/Stream.pm line 1165. But I don't know what the heck is going on in there. Poking around though, I see that $self->GetRoot($sid) is returning undef, and right above that, there's a call to delete($self->{SIDS}->{$currsid}). And GetRoot($sid), in fact, accesses $self->{SIDS}->{$sid}. So I add in some print statements and see that, in fact, $sid and $currsid are the same. So, I says to myself, comment out the delete call. And so I do. And so it works. I don't know why that was necessary. And I should send this to the XML::Stream author. Tomorrow.

Cross-posted on <pudge/*>.


you think it hates your server

link on 2008-01-04T02:36:39

Vague recollection suggests I came across this bug during a fit of jabber interest and suggested a similar fix via rt. I think the author has fallen off the edge of the perl universe.
One of the other jabber modules I tried crashed my jabber server so it could be worse. :)