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/*>.