Skip Menu |

This queue is for tickets about the POE-Component-Jabber CPAN distribution.

Report information
The Basics
Id: 67513
Status: new
Priority: 0/
Queue: POE-Component-Jabber

People
Owner: Nobody in particular
Requestors: james [...] jameswhite.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 3.00
Fixed in: (no value)



Subject: broken? given(<hash>){ when(<scalar>) }} causing starttls to fail as well
Using Debian 6 (squeeze) I cannot connect to an ejabberd server. POE::Component::Jabber complains that "Non-compliant server implementation! SASL negotiation not initiated." I tracked it down to the given() statement on line 468 of /usr/share/perl5/POE/Component/Jabber/XMPP.pm (and added a Data::Dumper line to inspect $clist) given(my $clist = $node->getChildrenHash()) { print Data::Dumper->Dump([ref($clist),$clist]); when('starttls') { print "'starttls' is a key in \$clist\n"; my $starttls = POE::Filter::XML::Node->new('starttls', ['xmlns', +NS_XMPP_TLS]); $kernel->yield('output_handler', $starttls, 1); $kernel->post($heap->events(), +PCJ_SSLNEGOTIATE); } The Data::Dumper call outputs: $VAR1 = 'HASH'; $VAR2 = { 'register' => [ bless( do{\(my $o = 187558000)}, 'POE::Filter::XML::Node' ) ], 'c' => [ bless( do{\(my $o = 190233488)}, 'POE::Filter::XML::Node' ) ], 'starttls' => [ bless( do{\(my $o = 190213512)}, 'POE::Filter::XML::Node' ) ], 'mechanisms' => [ bless( do{\(my $o = 190590640)}, 'POE::Filter::XML::Node' ) ] }; But the print "'starttls' is a key in \$clist\n"; is never called It would appear that the given(HASH){ when(SCALAR){ do_something }} doesn't appear to be doing something even when the key is in the hash. Version Information: dpkg -l perl libpoe-component-jabber-perl|grep "^ii" ii libpoe-component-jabber-perl 3.00-1 POE Component for communicating over Jabber ii perl 5.10.1-17 Larry Wall's Practical Extraction and Report Language